Chapter2 数据表达和MIPS汇编语言
2.1 二进制表示方法
针对于有符号整数,可以使用原码、补码和反码的方式进行表示。
2.1.1 反码与原码
对于一个数的有符号数,若其为正数则反码为其本身。例如正数0 001的反码为0 001与之前保持一致;负数1 001的反码为 1 110,即符号位不变,数值位按位取反
。
然而,对于3位的反码而言,我们可以得到+0和-0两种0的表示方式0 00和1 11,即0的表示方式不唯一。为此引入补码的概念。
2.1.2 补码与原码
对于一个数的有符号数,若其为正数则补码为其本身;若一个数为负数,则其补码的运算过程为:
补码=反码+1 补码 = 反码 + 1 补码=反码+1
例如:
步骤 | 结果 |
---|---|
初始值 | 1 0001 = -15 |
按位取反 | 1 1110 |
加一 | 1 1110 + 1 = 1 1111 |
此外,一个n+1位的补码的表示范围为−2n-2^n−2n至2n−12^n-1