先了解一下概念:
符号位:二进制的最高位,标识正数和负数。(0表示为正,1表示为负)
数值位:符号位后面几位(所以八进制表示的数值位只有7位)
例:
20的原码:0 0010100,此处蓝色的0为符号位,即值为正;后面的7位红色数为数值位。
-20的原码:1 0010100。此处蓝色的1为符号位,即值为负;后面的7位红色数为数值位。
一.正数的原码,反码,补码。
以66为例。
原码:0 1000010
反码:0 1000010
补码:0 1000010
即:正数的原码,反码,补码是一样的
二.负数的原码,反码,补码(转换中符号位不变)
1.负数的原码→反码。
在原码中,符号位不变,数值位按位取反。
-66的原码:1 1000010
-66的反码:1 0111101
-16的原码:1 0010000
-16的反码:1 1101111
2.负数的反码→补码。
在反码中,符号位不变,末位+1。
-66的反码:1 0111101
-66的补码:1 0111110
-16的反码:1 1101111
-16的补码:1 1110000