BCD码的表示方法(没有单独的表示方法,只是用二进制表示,和十六进制更不同(有时候为方便暂且用十六进制形势,绝对不能理解为十六进制中特殊的一些数(无10以上的字母表示))) | 您所在的位置:网站首页 › 21用二进制怎么表示 › BCD码的表示方法(没有单独的表示方法,只是用二进制表示,和十六进制更不同(有时候为方便暂且用十六进制形势,绝对不能理解为十六进制中特殊的一些数(无10以上的字母表示))) |
BCD码的表示方法 BCD码的表示方法(没有单独的表示方法,只是用二进制表示,和十六进制更不同(有时候为方便暂且用十六进制形势,绝对不能理解为十六进制中特殊的一些数(无10以上的字母表示))) BCD是什么? 用二进制数来表示十进制数的表示方法。 BCD有两种形式,pack BCD, unpack BCD 1.pack BCD,压缩的BCD码它是一种用四位二进制数表示十进制数. 首先是用四位二制数表示个数,然后用四位二进制数表示十位, 然后百位...。 比如:251需要三个四位二进制数表示。 1表示为0001;5表示为0101;2表示为0010. 最后251的BCD数据表示为0010 0101 0001. 2.unpack BCD.非压缩BCD 非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。 ASCII和BCD码对照表: 十进制数字ASCII码压缩BCD码非压缩BCD码 0 0011 000000000000 000010011 00010001 0000 000120011 001000100000 001030011 001100110000 001140011 010001000000 010050011 010101010000 010160011 011001100000 011070011 011101110000 011180011 100010000000 1000 90011 100110010000 1001 来源:http://www.cublog.cn/opera/showart.php?blogid=15478&id=83640
BCD码: BCD(Binary Coded Decimal)是用二进制编码表示的十进制数(见表3.3),十进制数采用0~9十个数字,是人们最常用的。在计算机中,同一个数可以用两种BCD格式来表示:①压缩的BCD码 ②非压缩的BCD码 压缩的BCD码: 压缩的BCD码用4位二进制数表示一个十进制数位,整个十进制数用一串BCD码来表示。例如,十进制数59表示成压缩的BCD码为0101 1001,十进制数1946表示成压缩的BCD码为0001 1001 0100 0110。 非压缩的BCD码: 非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。例如,十进制数78表示成压缩的BCD码为0000 0111 0000 1000。 从键盘输入数据时,计算机接收的是ASCII码,要将ASCII码表示的数转换成BCD码是很简单的,只要把ASCII码的高4位清零即可。 ASCII和BCD码 十进制数字 ASCII码 压缩BCD码 非压缩BCD码 0 0011 0000 0000 0000 0000 1 0011 0001 0001 0000 0001 2 0011 0010 0010 0000 0010 3 0011 0011 0011 0000 0011 4 0011 0100 0100 0000 0100 5 0011 0101 0101 0000 0101 6 0011 0110 0110 0000 0110 7 0011 0111 0111 0000 0111 8 0011 1000 1000 0000 1000 9 0011 1001 1001 0000 1001 void BcdToAscii (char *ascii_buf, const BYTE *bcd_buf, int len) { int i; char ch; for (i=0; i { if (i & 1) ch = *(bcd_buf++) & 0x0f; else ch = *bcd_buf >> 4; ascii_buf[i] = ch + ((ch > 9)? 'A'-10 : '0'); } }
来源:http://xxcom.blogchina.com/ |
CopyRight 2018-2019 实验室设备网 版权所有 |