找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2496|回复: 1
打印 上一主题 下一主题
收起左侧

十进制转bcd码

[复制链接]
跳转到指定楼层
楼主
ID:93401 发表于 2017-9-4 17:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int a,b;
b=(a/10)<<|(a%10)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:111587 发表于 2017-9-4 22:49 | 只看该作者
int a b;// a为输出 b为输入0-9
char temp_1, i  ;// 中间运算值
temp= b%10; //对10取余,查看个位数字 举例 b=7=1+2+4
for(i=0;i<4;i++){
temp_1=b%2 ;  //对2取余.处理b中大于等于0小于等于1的部分,例 7%2=1,也就是转换出来的最低位是1,我们需要把它放到最低位
temp_1<<3; //经过上一次运算,中间值是0000 0001,向左位移3位得到0000 1000
a>>1;//把上面的0000 1000中的1填到a的第5位,这里把a右位移1,腾出位置,放数值
a=a|temp_1; //a与这个值进行或运算,a的第5位和temp_1的值相同
b=b/2;// 把b的值缩小2倍,这样可以把大于等于1小于2的部分,缩小到大于等于0小于等于1,例,7=1+2+4,7/2=0+1+2(由于取整,第一个1/2的运算变成0了)
//2^4=16>10,反复运行4次,可以把10以内的数字转化成8421码
}


评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表