八位二进制数转BCD码

bhf5196152 2009-12-11 10:47:50
怎样将八位的二进制数转换成一字节的BCD码?
...全文
1109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin0119 2009-12-12
  • 打赏
  • 举报
回复
while(i.low >9)
{
i.high++;
i.low -=10;
}
while(i.high >9)
{
i.high2++;
i.high -=10;
}
liuchaotao 2009-12-12
  • 打赏
  • 举报
回复
八位的二进制数转换成BCD,多数一字节放不下,最好有2字节存放。
在嵌入式应用当中当然以查表法最常用。若要用算法,那就是“除10取余”
kyzf 2009-12-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liuchaotao 的回复:]
八位的二进制数转换成BCD,多数一字节放不下,最好有2字节存放。
在嵌入式应用当中当然以查表法最常用。若要用算法,那就是“除10取余”
[/Quote]

OK
宇帆 2009-12-12
  • 打赏
  • 举报
回复
8位二进制数据最大到255 而BCD码最大是1001 1001 既最大到99
所以一个字节数据 要转换成1个半字节的BCD码 高位是高字节 次高位和地位组成低字节

比如 BYTE K;
K1=K%10; //低位
K2=(K/10)%10;//次高位
K3=K/100//高位

次高位*16+低位 既BCD码的低字节 既 K2*16+K1
高位 既BCD吗的高字节 既 K3
Great_Bug 2009-12-11
  • 打赏
  • 举报
回复
最快的是查表

27,372

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧