100 の 2 の補数を求める

-100 のビット列がどのようになるか考えてみましょう。

負の値は 2 の補数 (Two's complement) で表現されます。そこでまず、正の 100 を考えます。

(正の) 100 は次のビット列です。

00000000000000000000000001100100

2 の補数は、与えられた 2 進数値に対して、そのビット数より 1 桁多く最上位ビットが 1、 残りがすべて 0 であるような数値 (n=8なら 100000000)から、元の(正の)数を引いた数として求められます。

このため、-100 のビット列は次の計算で求められます。

  100000000000000000000000000000000
-) 00000000000000000000000001100100
-----------------------------------
   11111111111111111111111110011100

以上から、100 の 2 の補数は 11111111111111111111111110011100 になります。

これは電卓で検算した結果と合ってます。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Java 入門