概述
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大家用KEIL的时候是不是很想输入二进制?但可惜,KEIL只能在汇编的时候使用二进制,C语言不能用。
二进制好处多,尤其是在编1602的时候,对寄存器的操作更加直观,哪一位是1,哪一位是0,一目了然
下面的程序在KEIL中试验仿真通过,大家可以在实物中试验一下。
#include
#define uchar unsigned char
#define uint unsigned int
//二进制转换成十进制,binH代表高四位,binL代表低四位
uchar bin_to_dec(uint binH,uint binL)
{
uchar dec_data=0;//dec_data是最后的运算结果,返回值
uchar tmp;// tmp用来保存取出来的每一位
tmp=(bit)(binH/1000);//取binH最高位
tmp<<=7;
dec_data|=tmp;
tmp=(bit)(binH/100%10);//取第三位
tmp<<=6;
dec_data|=tmp;
tmp=(bit)(binH/10%10);//取第二位
tmp<<=5;
dec_data|=tmp;
tmp=(bit)(binH%10);//取第一位
tmp<<=4;
dec_data|=tmp;
tmp=(bit)(binL/1000);//取binL最高位
tmp<<=3;
dec_data|=tmp;
tmp=(bit)(binL/100%10);//取第三位
tmp<<=2;
dec_data|=tmp;
tmp=(bit)(binL/10%10);//取第二位
tmp<<=1;
dec_data|=tmp;
tmp=(bit)(binL%10);//取第一位
dec_data|=tmp;
return(dec_data);
}
void main()
{
uchar a;
a=bin_to_dec(1111,1100);//程序中的调用方法
while(1);
}
程序有点长,其实就是把bin_to_dec(1111,1100)这个函数里面的两个形参,1111和1100按位取出来,然后再逐位放到一个数据里面的过程,取出的方法就是用除法和取余运算,学过数码管动态驱动的应该有点印像吧?
最后
以上就是清新小兔子为你收集整理的keil中c语言变量二进制赋值,最近技痒,写了个KEIL中输入二进制数的函数,请大家指教...的全部内容,希望文章能够帮你解决keil中c语言变量二进制赋值,最近技痒,写了个KEIL中输入二进制数的函数,请大家指教...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复