2の補数表現で110101が-11になる理由を解説|二進数の負数表現の仕組み

数学

コンピュータでは負の数を表現するために「2の補数」という方法がよく使われます。二進数の110101がなぜ-11になるのか疑問に感じる人は多いですが、2の補数のルールを理解すると計算の仕組みが見えてきます。この記事では、2の補数表現の基本から、110101が負の数としてどのように解釈されるのかを順番に解説します。

2の補数表現とは何か

2の補数表現とは、コンピュータで負の整数を表すために使われる二進数の表現方法です。通常の二進数では、すべてのビットを使って正の数を表しますが、2の補数では一番左のビット(最上位ビット)を符号として利用します。

例えば6ビットの二進数では、左端のビットが0なら正の数、1なら負の数を表します。

つまり、6ビットの場合は次のようになります。

000000〜011111 → 0〜31の正の数
100000〜111111 → -32〜-1の負の数

110101は左端が1なので、負の数であることが分かります。

110101を2の補数から元の絶対値に戻す方法

2の補数で表された負の数の大きさを調べるには、次の手順を行います。

① すべてのビットを反転する
② 反転した値に1を足す

まず、110101を反転します。

110101 → 001010

次に、001010に1を足します。

001010+000001=001011

001011を通常の二進数として十進数に変換すると、

0×32+0×16+1×8+0×4+1×2+1×1=11

となります。

つまり、110101は「-11」を表していることになります。

なぜ反転して1を足すと負の数になるのか

2の補数が使われる理由は、コンピュータ内部で足し算だけを使って正負の計算を処理できるためです。

例えば、6ビットで11を表すと、

001011

になります。この11の2の補数を求めると、

001011を反転 → 110100
1を足す → 110101

となり、-11になります。

この2つを足すと、

001011+110101=1000000

6ビットでは7桁目を無視するため、結果は000000になります。つまり、11+(-11)=0を正しく表現できます。

6ビットの二進数で表せる範囲

2の補数では、nビットの場合に表現できる範囲が決まっています。

6ビットの場合、表せる範囲は次の通りです。

-2⁵〜2⁵-1

つまり、

-32〜31

までの整数を表現できます。

そのため、110101は6ビットの範囲内で負の数として扱われ、-11という値になります。

2の補数表現で注意するポイント

2の補数では、同じ二進数でも何ビットで考えるかによって意味が変わります。

例えば110101を6ビットの2の補数として読むと-11ですが、正の二進数として読む場合は、

32+16+4+1=53

となり、53になります。

つまり、二進数を見るときは「何ビットの符号付き整数として扱っているか」を必ず確認する必要があります。

まとめ

二進数110101が-11になる理由は、6ビットの2の補数表現で左端のビットが1になっているためです。

負の値を求めるには、ビットを反転して1を足します。

110101 → 001010 → 001011 → 11

となるため、110101は-11を表します。

2の補数は、コンピュータが負の数を効率よく扱うための重要な仕組みです。反転して1を足すという手順だけでなく、その理由まで理解すると、情報分野の二進数計算をより深く理解できます。

コメント

タイトルとURLをコピーしました