1. [1000 0000]作为补码表示-128不是算出来的, 是规定的,因为-0原码[1000 0000]在用原码规则来表示数是没有意义的,就浪费了这个编码, 所有要让这个编码有意义,就 整出来取反+1这套规则刚好能把-0原码【1000 0000】整到了-127【1000 0001】后面,所以用它来表示-128, 逻辑也正确: -128 = -127 - 1 = 【1000 0001】 - 1 = 【1000 0000】, 然后就把这套规则命名为补码,所以-0原码【1000 0000】在补码系统中表示-128不是推导的,是直接将-0原码【1000 0000】在补码系统中直接规定为补码表示-128
2. 在原码中0的表示不是唯一的,假设取4位原码,最高位是符号位,那么0的原码有两种表示方式:0000和1000
原码的运算优点是直观,但做加减运算时要判别符号位是否异同,因而增加运算时间。
3. 在反码中0的表示也不是唯一的,假设取4位原码,最高位是符号位,那么0的原码有两种表示方式:0000和1111
反码在做加法运算时,如果符号位相加后出现进位,则要把它送回到数的最低位进行相加,也会增加运算时间
4. 补码中0表示是唯一的
在补码中符号位也参与运算,如果符号位发生进位,则把进位的1舍弃就可以了,因而运算非常方便
5. 补码的设计目的是:
1>. 使符号位能与有效值部分一起参加运算,从而简化运算规则.
2>. 减运算转换为加运算,进一步简化计算机中运算器的线路设计.
计算机浮点数的表示方法请参考以下链接:
https://blog.csdn.net/techx/article/details/43830781
浮点表示法中,几种特殊值的表示方法: