求1个C语言关于数码转换问题

[复制链接]
查看11 | 回复2 | 2010-9-5 21:43:00 | 显示全部楼层 |阅读模式
我想在把hex转换成BCD,这样通过与单片机控制数码管显示任何数值而不会出现a,b,c,d,e 如果暂时不考虑单片机和数码管 纯粹把hex转成BCD应该怎么用C语言写呢

回复

使用道具 举报

千问 | 2010-9-5 21:43:00 | 显示全部楼层
关于用数码管显示的给你个思路。数码管有8段,正好一个字节。所以先定义好数码管显示的从0到9的值的表。char led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}//这里的值跟数码管的类型有关。led[0]对应 "0"的显示,led[1]对应"1"的显示,以此类推。 这里你不用考虑如何把hex 转成 bcd.比方说,你要显示"135",假设变量a=135。你分别设变量 bw,sw,gw 分别为显示的 百位,十位,个位。char bw,sw,gw;char a=135;bw= led[a/100];//求100的整数位等于百位。sw= led[(
回复

使用道具 举报

千问 | 2010-9-5 21:43:00 | 显示全部楼层
只限于整数吗?转换为BCD应该就相当于取得对应的时间值的每一位吧,是这样的话这样写就可以吧while(n){temp = n% 10;n = n / 10;}temp是倒序的。例如是123的依次是3 2 1
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行