补码让符号位参与运算
在固定总位数内,把操作数连同符号位相加,超出总位数的进位丢弃。这是按模运算,最后还要判断数学结果是否超出范围。
2.4.1 · 建议 15 分钟
逐位观察加法与进位,再用表示范围判断补码运算是否溢出。
在固定总位数内,把操作数连同符号位相加,超出总位数的进位丢弃。这是按模运算,最后还要判断数学结果是否超出范围。
计算一个数减去另一个数,可以将第二个补码的所有位取反,再加 1,转换为相反数的模表示。
进位是某一位的加法向更高位送出 1;有符号溢出是结果超出了当前位数的可表示范围。需要分别看待。
进入符号位的进位 C 与送出符号位的进位 Cf 不同时,OF=Cf XOR C=1。双符号位出现 01 或 10 也表示溢出;00 与 11 表示正常。
用两道小题检查是否看懂本页的核心过程,答错可以重新尝试。
原码加减需根据两个数的符号,决定绝对值相加或相减,再确定结果符号。补码避免对这些情况逐一分开处理。
同号数相加出现异号结果提示溢出;也可比较进入和送出符号位的进位。双符号位法中,00 和 11 为正常符号状态,01 和 10 提示正、负溢出。
移码运算还要修正偏置:若编码为真值加偏置,则相加的编码结果应减去一次偏置,相减的编码结果应加回一次偏置。
依据教材章节范围重新设计,图示、演示数据与练习均为本站制作。配合课本阅读;本站不提供教材电子版。