我正在读一本叫做 x86处理器的汇编语言的书。以下是有关打包的BCD数据的摘录。
3.4.8定义打包的BCD(TBYTE)数据
英特尔将压缩的二进制编码的十进制(BCD)整数存储在10字节的程序包中。每个字节(除 最高)包含两个十进制数字。在较低的9存储 字节,每个半字节保留一个十进制数字。在最高 字节,最高位指示数字的符号。如果最高字节 等于80h,数字为负;如果最高字节等于00h, 这个数字是正数。整数范围是-999,999,999,999,999,999 到+999,999,999,999,999,999。
我以前从未听过。根据描述,仅低9个字节用于存储整数的数据部分。最高字节仅用于整数的符号。摘录中的范围证明了这一点。但是,为什么这种编码只使用4位,而使用字节作为符号呢?这样,它可以将剩下的4位用于其他数字,范围为-9,999,999,999,999,999,999至+9,999,999,999,999,999,999。这是如此简单明了,这使我认为我可能还不完全了解它。