二进制
机器运算使用的是二进制补码
机器数
一个数在机器中的二进制表现形式就是这个数的机器数。
机器数都是带符号的,最高位作为符号位,0代表正,1代表负
包括3种表现形式:原码、反码、补码
以机器字长为8位为例,-10的原码、反码、补码分别为[1]000 1010、[1]111 0101、[1]111 0110
真值
由于符号位的存在,对于负数而言,直接将一个二进制数转换为十进制得到的数值(形式值)并不是其真正的数值,所以我们将其真正的数值称为真值。
如上面例子中原码[1]000 1010,十进制形式值为138,而其真值应该是-10。
原码
原码为符号位加上真值的绝对值,即第一位用符号位表示,剩余机器字长位数-1位表示值
127(十进制)原码 : [0]111 1111(二进制)
-127(十进制)原码 : [1]111 1111(二进制)
原码是人脑最容易理解和计算的表示方式。
人脑可以知道首位是符号位,在计算的时候我们会根据符号位选择对真值区域的加减。
但是对于计算机,加减乘数是最基础的运算,要设计的尽量简单,计算机辨别符号位会让计算机的基础电路设计变得复杂,于是人们想出了将符号位也参与运算的方法。
我们知道,根据运算法