一,真值
就是现实中的数字(二进制)必须有+/-,实际中整数舍弃了+。
eg:+1101010001 -1010001111
二,原码
计算机中唯一标识一个真值,但是不能用于计算以及无法实现减法,会产生二异性(+0,-0)
求法:正数的原码是其补全位数后前面加0,负数的原码是是其补齐位数后去掉-,在前面加1
eg:
真值:+10000101 -10101100
原码:010000101 110101100
三,补码
用于解决计算机无法实现减法以及原码的无法唯一标识
求法:正数的补码是其补全位数后前面加0,负数的补码是是真数去掉-,从右到左找到第一个1左边取反,在前面加1
eg:
真值:+1010111 -1110101 -101010100
补码:01010111 10001011 1010101100
四,反码
到目前为止我还不知道有啥用-过渡反正我觉的很鸡肋
求法:真值的反码是其补全位数后前面加0,负数的反码是其补码-1
eg:
真值:+1010111 -1110101 -101010100
反码:01010111 10001010 1010101011
五,移码
用于解决补码无法比较大小的作用
求法:补码符号位取反
eg:
真值:10100 -10100
移码:1,10100 0,01100
六,特殊码(负数+临界)求法(定义法)
eg: 10000000(补码)
-128(真值)
1,补码1开头,确认负数 100000000
2,真值=补码-2^n+1(n为整数位数) 100000000-2^(7+1)= -1000000000 = -100000000 = -128
10000000(原码)
-0(真值)
1,10000000 = -0(真值)--- 直接变换
七,总结
1,如果真值大于0,其原码,补码,反码都一样
2,本人所写为本人认为最简求法,省略了大部分原理,详细请参考计算机组成原理