BCD码

举报
一颗小树x 发表于 2020/12/03 23:25:30 2020/12/03
【摘要】 压缩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   例如...

压缩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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。