数字系统与编码:二进制运算及十进制编码详解
1. 二进制减法与补码运算
在二进制减法中,通常不直接进行减法操作。而是先对减数取补码,再将其与被减数相加。具体来说,对减数逐位取反,并在相加时初始进位($c_{in}$)设为 1 而非 0。例如:
- (+4 - +3):
- 被减数 (0100),减数 (0011),减数取补码为 (1100),初始进位 (1),则 (0100 + 1100 + 1 = 10001)。
- (+3 - +4):
- 被减数 (0011),减数 (0100),减数取补码为 (1011),初始进位 (1),则 (0011 + 1011 + 1 = 10011)。
减法中的溢出检测可以通过检查被减数和取补码后的减数的符号,规则与加法相同。也可以观察符号位的进位和借位,不考虑输入和输出的符号,规则同样与加法一致。当尝试对“额外”的负数取反时,在补码过程中加 1 可能会导致溢出,但只要最终结果不超出数值范围,该数仍可用于加减法运算。
2. 补码与无符号二进制数
补码数和相同长度的无符号二进制数使用相同的基本二进制加减法算法,因此计算机或其他数字系统可以使用同一个加法器电路处理这两种类型的数。但结果的解释取决于系统处理的是有符号数(如(-8)到(+7))还是无符号数(如(0)到(15))。
以 4 位二进制数为例,通过重新标记 4 位补码系统的图形表示,可以得到 4 位无符号数的表示。在无符号数系统中,加法操作若使箭头顺时针越过 0 和 15 之间的不连续点,则表示超出范围,此时最高有效位会产生进位;减法操作若使箭头逆时针越过不连续点,则表示超出范围,最高有效位会产生借位。而且,
超级会员免费看
订阅专栏 解锁全文
394

被折叠的 条评论
为什么被折叠?



