计算机组成原理-机器码
原码
-
“00...0” 和 “10...0” 均表示 0
-
最左表示“符号位” ⇒ 0 表示正数,1 表示负数
-
加法运算
- “符号位”相同则“数值位”直接相加,符号位不变
- “符号位”不同则“数值”大的减数值小的,“符号位”与数值大的相同
- 减法运算
把“减数”符号取反,剩下的与加法相同
反码
- “00...0” 和 “11...1” 均表示 0
- 正数 ⇒ 反码等于原码
- 负数 ⇒ 除符号位外其他部分“取反”
- 加法运算 ⇒ 直接相加,最高位向最低位进位(循环进位)
补码
- “00...0” 为 0 的补码
- 正数:补码等于原码
- 负数
- ⭐ 反码法 ⇒ 符号位不变,按位取反,最后加 1
- 🔔 定点小数同理
- ⭐ 扫描法 ⇒ 符号位不变,右起第一个 1 及其右边的 0 不变,其余取反
- ⭐ 反码法 ⇒ 符号位不变,按位取反,最后加 1
- 加法运算
- 基于计算机会将超过模数的部分去掉,如模为12(1100)时,13(1101)变成1(0001)
[x]补 + [y]补 = [x+y]补
- 基于计算机会将超过模数的部分去掉,如模为12(1100)时,13(1101)变成1(0001)
- 溢出
模 12 时 9-8=9-(12-8)=9+4=13=1,此时利用了溢出截断来实现减法,但是 9+4=13=1 不符合实际,就是溢出了,并且是“上溢”