正数的原码、反码和补码是一样的,并且符号位(第一位)是0。
例如:9的原码:00001001 反码:00001001 补码:00001001
负数:负数符号第一位是1。
原码和反码的相互转换:符号位不变,数值位按位取反
原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1
例如:-8的原码:10001000 反码:11110111 补码:11111000
-5的原码:10000101 反码:11111010 补码:11111011
计算机中数字以补码储存,因为原码和反码计算不准确,而补码是准确的。
例如:9+(-8)=1
如果用原码:00001001+10001000=10010001即-17 错误。
如果用补码:00001001+11111000=00000001 原码为00000001 即1。