- 109
- 0
- 约4.05千字
- 约 4页
- 2017-08-29 发布于浙江
- 举报
两个字节的二进制数转换成BCD 码
;已知16 位二进制整数n 以b15~b0表示,取值范围为0~65535。
;那么可以写成:
;n =[b15~b0]
;把16 位数分解成高8 位、低8 位来写,也是常见的形式:
;n =[b15~b8]*256 +[b7~b0]
;那么,写成下列形式,也就可以理解了:
;n =[b15~b12]*4096 +[b11~b0]
;式中高4 位[b15~b12]取值范围为0~15,代表了4096 的个数;
;上式可以变形为:
;n =[b15~b12]*4000 +{[b15~b12]* (100-4)+ [b11~b0]}
;用x 代表[b15~b12],有:
;n = x* 4000+ {x*(100 -4)+[b11~b0]}
;即:
;n = 4*x(千位)+x (百位)+[b11~b0]-4*x
;写到这里,就可以看出一点BCD 码变换的意思来了。
;上式中后面的位:[b11~b0]-4*x,如果小于256,那就太简单了,马上就可以去按照常规转
换BCD 了。
;如果数值较大,就要把[b11~b7]看成128 的个数y;在百位中加上y、在十位加上3*y、并
在[b6~b0]中减去2*y。
;那么就有:
;n =4*x (千位) +x(百位)+ [b11~b0]-4*x
;n =4*x (千位) +(x+ y)(百位) +3*
原创力文档

文档评论(0)