导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→有关BCD码[guest]

 *第23040篇: 有关BCD码

  
楼 主:guest 2004年6月17日19:30
 有关BCD码
哪位大侠能提供一下有关bcd 码转换成二进制的算法( 用乘法或其他实现)原理,不要代码!
我是菜菜鸟,问这菜菜的问题.谢谢!( 推荐文章也可以 )我的msn :say918@hotmail.com.
不是那种先取出4个bit 然后乘 10 ,1000 的那种.要对整个字节操作.最好有推导过程,及其
结果的代数式.谢谢!!
  
2楼:Kuang-chingTsui 2004年6月19日16:39
 BCD 到二进制:
常用的方法是乘十加数法. 例如有BCD码串: BCD1 ,BCD2, BCD3, BCD4
算法如下:
((BCD1 X 1010 + BCD2) X 1010 + BCD3) X 1010+ BCD4
其中二进数1010即为十进数的十.注意,转换总是从最左(高)位开始.更长的串依此类推.
举例:
" 9 " , " 6 " , " 3 " , " 8 "
BCD表示为 1001 , 0110 , 0011 , 1000
代入上式:
((1001X1010+0110) X 1010 + 0011) X 1010 + 1000
=((01011010+0110) X 1010 + 0011 ) X 1010 + 1000
=((01100000) X 1010 + 0011 ) X 1010 + 1000
=(001111000011) X 1010 + 1000
=0010010110100110 
十六进制表示: 25A6H
这样说明白吗?

  
3楼:guest 2004年6月19日20:40
 谢谢你的关注
谢谢你的帮助!!!我需要对字节一级的操作,即不允许对位操作(bcd1 和bcd2 ,bcd3 和bcd4 分开操作)而是把bcd1和bcd2,,bcd3和bcd4作为不可分割的整体进行操作.!   bcd1 和bcd2 存储在同一个内存单元里:bcd3 和bcd4 存储在同一个内存单元里.如1234d 用bcd 码表示在内存中的形式为:00010010 b  (高字节 ---12) 00110100 (低字节---34)    不能把0001  和0010   分开操作.谢谢!


  
4楼:guest 2004年6月19日20:41
 谢谢你的帮助!!!我需要对字节一级的操作
谢谢你的帮助!!!我需要对字节一级的操作,即不允许对位操作(bcd1 和bcd2 ,bcd3 和bcd4 分开操作)而是把bcd1和bcd2,,bcd3和bcd4作为不可分割的整体进行操作.!
  
5楼:Kuang-chingTsui 2004年6月19日20:45
 你可以将一个BCD码先放到一个字节的低四位,然后按我的算法进行
  
6楼:guest 2004年6月19日20:59
 谢谢你的关注
这样做太麻烦了!!可以介绍一种直接对字节操作吗?(存在的)谢谢!
  
7楼:Kuang-chingTsui 2004年6月19日22:01
 BCD码本身只占半个字节, 所以你要预先处理一下................
  
8楼:guest 2004年6月20日16:39
 谢谢你
好的,非常谢谢你!!

>>>>>>对该主题发表你的看法

本主题贴数8,分页: [第1页]


[上一篇主题]:请问ksps是什么单位,具体意义是什么,英文全称是什么,谢谢

[下一篇主题]:求Hitech-PICC 编译器