keil中c语言变量二进制赋值,最近技痒,写了个KEIL中输入二进制数的函数,请大家指教...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

大家用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按位取出来,然后再逐位放到一个数据里面的过程,取出的方法就是用除法和取余运算,学过数码管动态驱动的应该有点印像吧?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值