主页 > imtoken钱包正版 > 1000十进制 BCD码的表示方法

1000十进制 BCD码的表示方法

imtoken钱包正版 2023-01-17 12:40:06

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。

1000十进制

当从键盘输入数据时,计算机接收到 ASCII 码。把ASCII码代表的数字转换成BCD码很简单1000十进制,只要把ASCII码的高4位清零即可。

ASCII 和 BCD 码

十进制数 ASCII 码 压缩 BCD 码 未压缩 BCD 码

0 0011 0000 0000 0000 0000

1000十进制

1 0011 0001 0001 0000 0001

2 0011 0010 0010 0000 0010

3 0011 0011 0011 0000 0011

4 0011 0100 0100 0000 0100

1000十进制

5 0011 0101 0101 0000 0101

6 0011 0110 0110 0000 0110

7 0011 0111 0111 0000 0111

8 0011 1000 1000 0000 1000

1000十进制

9 0011 1001 1001 0000 1001

void BcdToAscii (char *ascii_buf, const BYTE *bcd_buf, int len)

{

int i;

1000十进制

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');

}

}