BCD码
压缩BCD码和非压缩BCD码:
压缩BCD码用4位2进制表示,1字节(8位2进制)表示2位BCD码,如10010011B表示十进制数93
非压缩BCD码用1字节表示,高4位总是0000,记住总是,低4位用0000--1001表示0--9,如93 表示为0000100100000011,占2个字节,00001001表示9,00000011表示3
例如:内存中存放的二进制代码是94H,H表示16进制,进制只是表示数的一种方式而已,如果是十六进制,那么94H=十进制中的9*16+4*1=148(十六进制表示类似于十进制中148D=1*100+4*10+8*1,D表示十进制,因为一般用的都是十进制,所以省略D)
用二进制表示94H为10010100B,无符号数,就为9*16+4=148,有符号数时,最高位表示符号位,为1表示为负数,为0表示为正数;
为正数时,就是常规的表示形式,如0001 0100B=14H=1*16+4=20;当为有符号数时等于-(128-0xxx xxxx),其中的xxx xxxx等于10010100B中的后七位数(即001 0100),那么有符号数时,94H等于-(128-00010100)=-(128-14H)=-108.
补充:
1.首先要明白BCD码的意义,BCD码在实质上已经表示的不是一种进制了,而是一种为了方便实际中显示的“一种格式”,比如有两个数码管要显示19,那么一个应该显示1,另一个显示9;机器是不知道进制的,你只能给一个数码管输送显示1,另一个数码管显示9的信息,而不能说让他们发送显示十进制数19,他们就自动在一个上面显示1,另一个显示9,关于为什么需要H这个比如说显示19,那么第一个BCD码是0001,第二个是1001,为了方便表示,用十六进制表示为19H,十六进制里面的其他如A、B、C、D、E、F在BCD码的表示中是没有意义的,简单来说,就是BCD码就是在十进制的基础上加上一个H,它是没有具体的数学意义的!
2. 1里面已经说了,BCD只具有物理意义(方便显示),不具有数学意义,写成94H只是为了方便表示1001 0100这两个单独的BCD码!
文章来源: guo-pu.blog.csdn.net,作者:一颗小树x,版权归原作者所有,如需转载,请联系作者。
原文链接:guo-pu.blog.csdn.net/article/details/88117908
- 点赞
- 收藏
- 关注作者
评论(0)