2.1 数据表示的作用
2.2 数值数据的表示
一、真值:使用正负两种符号表示的数据,例如:-9(十进制),-10101(二进制),11001(二进制)
二、机器码(机器数):由符号和数值一起编码表示的二进制数。
2.2.1数的机器码的表示
1、原码
原码就是符号化的数值,编码规则为:正数符号位用0表示,负数则用1来表示,数值为保持不变。
例如:-1111的原码为11111,而1111的原码为01111。
2、反码(1的补码)
其符号位与原码、补码都相同,如果符号位为正(0),真值部分为原码部分相同,若为负(1),真值部分取反,即1变为0,0变为1。
3、补码
补码的运算为正数不变(与原码和反码相同),而负数补码为反码加“1”。
4、移码
直接将真值加一个常数偏移量,可以保持真值数的大小顺序,方便浮点运算的对阶操作。
5、关于计算机为什么要设计反码与补码
计算机中无法进行减法运算,如,因为符号位的存在,直接对原码进行加减运算并不能得到正确的结果,导致-2 + 1 = -3。
因此引入了反码用来解决负数加法的问题,但在进行跨0运算时仍然存在问题,比如-1 + 3的结果会是1的反码,而不是预期的2。
所以我们又引入补码,通过加1的方式消除了反码中多余的-0表示,使得0只有一种表示方式(即全0),并且解决了跨0运算的问题。例如,-1 + 3的补码运算结果会是2,与预期相符。
可能你已经发现,正数的补码与其对应的负数的补码相加为0。
2.2.2定点数表示
1、定点整数:在这种表示中,小数点被隐含地放在数值的最右侧(最低位之后),即所有位都用来表示整数部分。
2、定点小数:在这种表示中,小数点被放置在数值中的某个固定位置。(最高位之前或符号位之后)
3、定点数的表示范围
2.2.3浮点数表示
1.浮点数表示形式
2、浮点数表示范围