机器数与真值,原码反码补码
机器数与真值
1、机器数
机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.
(假设字长为 8 位)
3 的机器数 0000-0011
-3 的机器数 1000-0011
2、真值
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。
为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值
机器数 --> 真值
0000-0011 --> 3
1000-0011 --> -3
原码反码补码
1、原码
符号位加上真值的绝对值,即用第一位表示符号,其余位表示值
5[原] --> 0000-0101
-5[原] --> 1000-0101
2、反码
反码的表示方法是:
-
正数的反码是其本身
-
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
5[反] = 0000-0101
-5[反] = 1111-1010(原码:1000-0101)
3、补码
补码的表示方法是:
-
正数的补码就是其本身
-
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
5[补] = 0000-0101
-5[补] = 1111-1011(反码 1111-1010 --> 末位加一得补码)
深入理解
沉舟侧畔千帆过,病树前头万木春。