2の補数
xに対して-xを得る方法
-x = (xのビット反転) + 1
例:x=2
2=00000010
-2=11111101+1=11111110=0xfe
table:2の補数表現の表
x xの2進数表示 -x -xの2進数表示 -xの16進数表示
0 00000000 0 00000000 0x00
1 00000001 -1 11111111 0xff
2 00000010 -2 11111110 0xfe
3 00000011 -3 11111101 0xfd
…
127 01111111 -127 10000001 0x81
128 10000000 -128 10000000 0x80
表せる値の範囲
ビット幅をnとする
-2^(n-1) ~ 2^(n-1)-1
n=8のとき、-128~127
特徴1:加算で減算を表現可能
a - b → a + (-b) と変換できる
例:1 - 2
1-2 = 1+(-2) = 0x01+0xfe = 0xff = -1
1-2=-1となり、正解
特徴2:最上位ビットで符号判定
最上位ビットが1→負
最上位ビットが0→非負
例:-2 = 11111110
最上位ビットが1なので負だと分かる