2025-11-08 05:27:17
BCD码是专门给十进制数字做二进制翻译的,每个数字占4位二进制。比如数字5用0010 0101表示。带符号的十进制数需要在BCD码前面加个符号位,0代表正数,1代表负数。这样每个数都分成两部分:最前面的符号位,后面跟着正常BCD码。比如+123就是0 0001 0010 0011,-456就是1 0100 0101 0110。这样处理就像给数字加上正负标签,方便计算机区分大小。
为什么必须加符号位呢?因为BCD码本身只能表示0到9的正数,没有自带符号功能。就像写作业时数字前面要写正负号一样,计算机处理带符号数时也需要这个标记。比如+5和-5的BCD码分别是0000 0101和1000 0101,符号位不同但数值部分完全一样。这种设计跟原码、补码类似,但符号位和BCD码直接拼接,不用改变数值部分。根据《计算机组成原理》第3章,符号加绝对值法在8位系统中最多能表示-9999到+9999,正好是4位符号位+4位BCD码的组合。比如-123的完整编码是1 0001 0010 0011,符号位1后面跟着BCD码,这样加减运算时符号位和数值位可以分开处理,不会出错。
本题链接: