Java 入門

ホーム > Java の基本 > 100 の 2 の補数を求める

100 の 2 の補数を求める

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

負の値は 2 の補数 (Two's complement) で表現されます。

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

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0

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

  1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-)   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0

  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0

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

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0

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

ホーム > Java の基本 > 100 の 2 の補数を求める