2の補数、1の補数の意味と負数の変換方法

2進数において、
$0$ と $1$ を反転させたものを1の補数と言う。
それに $1$ を足したものを2の補数と言う。

~目次~
・1の補数の意味と具体例
・2の補数の意味と具体例
・負数の表し方、人間用とコンピュータ用の数値変換方法

1の補数の意味と具体例

2の補数を理解するために、まずは1の補数です。2進法の世界で、$0$ と $1$ を反転させたものを1の補数と言います。

例えば、
$1011$ の1の補数は
$0100$ です。

$10100100$ の1の補数は
$01011011$ です。ただ反転させるだけなので簡単です。

2の補数の意味と具体例

$0$ と $1$ を反転させて $1$ を加えたものを2の補数と言います。

例えば、$1011$ の2の補数は、反転させたもの $0100$ に1を加えたものなので、$0101$ です。

また、$10100100$ の2の補数は、反転させたもの $01011011$ に1を加えたものなので、$01011100$ です。

余談ですが、2の補数は、以下のように定義することもできます:
($k$ 桁で考えているとき)$a$ の2の補数は $2^k-a$

この説明から、$a$ の「2の補数」の「2の補数」は $a$ であることが分かります。
ただ、「$0$ と $1$ を反転させて $1$ を加えたもの」という説明のほうが分かりやすいと思います。

負数の表し方

コンピュータの世界で広く用いられている、8ビットで整数を表す方法を解説します。$-128$ から $127$ までの整数を表すことができます。

正の数は普通に2進数で表します。例えば $3$ は $00000011$ と表します。

負の数については、$-a$ は $a$ の「2の補数」で表現します。

例題1(人間→コンピュータ の変換):
$-6$ を上記の方法で8ビットで表現せよ。

解答

変換ロジック

$-6$ は $6$ の「2の補数」で表します。$6$ は $2^2+2$ なので、二進法では $00000110$ です。これの「2の補数」を取ればよいので、
ビット反転:$11111001$
さらに1を加える:$11111010$
が答えになります。

例題2(コンピュータ→人間 の変換):
$11111010$ は10進法でどのような数字を表すか?

解答

左端のビットが1の場合、マイナスの数を表すことになっています。コンピュータ用の負数を普通の2進数に直すのも2の補数を使えばOKです。

ビット反転:$00000101$
1を加える:$00000110$

これを10進法に直すと $2^2+2=6$ となります。よって、答えは $-6$ です。

次:二進数のかけ算の2通りのやり方と計算ツール
前:仮数部、指数部、基数:意味と計算方法

スポンサーリンク

スポンサーリンク

誤植がございましたら @mathwordsnet までご連絡をお願いいたします。
ページ上部へ戻る