主页 > imtoken钱包正版 > 1000十进制 BCD码的表示方法
1000十进制 BCD码的表示方法
BCD码:
BCD(Binary Coded Decimal)是用二进制码表示的十进制数(见表3.3),十进制数使用0到9的十位数字,是人们最常用的. 在计算机中,同一个数字可以用两种BCD格式表示:①压缩的BCD码②未压缩的BCD码
压缩 BCD 码:
压缩后的 BCD 码使用 4 位二进制数表示一个十进制数字1000十进制,整个十进制数由一串 BCD 码表示。例如,十进制数 59 表示为压缩 BCD 码为 0101 1001,十进制数 1946 表示为压缩 BCD 码为 0001 1001 0100 0110。
未压缩的 BCD 码:
未压缩的BCD码用8个二进制数字表示一个十进制数字,其中低4位为BCD码,高4位为0。例如,10进制数78用压缩后的BCD表示为0000 0111 0000 1000。
当从键盘输入数据时,计算机接收到 ASCII 码。把ASCII码代表的数字转换成BCD码很简单1000十进制,只要把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;
对于 (i=0; i {
if (i & 1) ch = *(bcd_buf++) & 0x0f;
else ch = *bcd_buf >> 4;
ascii_buf[i] = ch + ((ch > 9)?'A'-10 : '0');
}
}