2の補数計算機

符号付き十進数や二進ビット列を、4・8・16・32ビットの2の補数表現に変換します。

2の補数を計算
符号付き十進整数、または 0b で始まる二進数を入力してください。

例:-5 または 0b11111011

2の補数について

2の補数は、現代のコンピューターで符号付き整数を表す標準的な方式です。固定のビット数を使い、最上位ビットに負の桁の重みを割り当てます。そのため 8 ビットでは -128 から 127 を表せます。同じ八つのビットを符号なしの 0 から 255 として読むこともでき、二進データの交換や表示では解釈が重要です。 正の値は通常の二進数に先頭のゼロを補った形です。負の値を手で作るには、正の絶対値を選択した幅で書き、全ビットを反転して一を加えます。例えば十進数 5 は八ビットで 00000101、反転すると 11111010、一を加えると 11111011 となり、これが -5 の八ビット表現です。この計算機は、2 をビット幅乗した値を法とする演算で同じ答えを求めます。 ビット幅は表現の一部です。負の五は四ビットで 1011、八ビットで 11111011、十六ビットで 1111111111111011 です。負の符号付き値を拡張するときは先頭の一を繰り返し、これを符号拡張と呼びます。正の値では先頭のゼロを繰り返します。有効なビットを削ると値が変わるため、この計算機は選択した符号付き範囲を超える十進数を受け付けません。 ビット列を読むには先頭ビットを確認します。ゼロなら符号付きと符号なしの値は同じです。一なら符号なし値から 2 のビット幅乗を引きます。11111011 は符号なしで 251 ですが、251 - 256 により符号付きでは -5 です。この方法は、反転して一を加える手順を逆にたどるより速いことが多いです。 2の補数には便利な算術特性があります。加減算は符号付き・符号なしで同じ二進加算器を使え、オーバーフローは用途に応じて処理します。1の補数と異なり、ゼロの表現は一つだけです。ゼロが非負のパターンを一つ使うため、表現範囲は非対称で、負の値が一つ多くなります。 この計算機は、計算機アーキテクチャ、デジタル論理、組み込み開発、ネットワークプロトコル、デバッグ、離散数学に役立ちます。ビット幅は対象のシステムやデータ型に合わせてください。幅と符号の有無が不明なビット列は情報が不完全で、別の規則で解釈すると十進値がまったく変わる場合があります。

2の補数の例

十進数とビット幅二進ビット列説明
-5 を 8 ビットで表現1111101100000101 を反転し、一を加えます。
-8 を 4 ビットで表現1000符号付き四ビットの最小値です。
42 を 8 ビットで表現00101010正の値は通常の二進数にゼロを補います。

2の補数計算機の使い方

  1. 符号付き十進整数、または 0b 接頭辞付きのビット列を入力します。
  2. 対象システムのビット幅を選びます。
  3. 「2の補数を計算」を選びます。
  4. 二進数、符号付き十進数、符号なし十進数の解釈を比較します。

2の補数のよくある質問

なぜビット幅が重要なのですか?

幅によって法と符号付き範囲が決まります。同じ数でも補うビットが異なり、狭い幅では収まらないことがあります。

八ビットで表せる範囲は?

八ビットの2の補数整数は -128 から 127 です。同じビット列を符号なしで読むと 0 から 255 です。

二進数の符号を反転するには?

固定幅の中で全ビットを反転し、一を加えます。表現可能な最小整数を除き、もう一度行うと元の値に戻ります。

符号付きと符号なしで結果が違うのはなぜ?

最上位ビットに与える桁の意味が違うためです。保存されているビットは同じでも、解釈が変わります。

2の補数に負のゼロはありますか?

ありません。ゼロは全ビットがゼロの一通りだけです。符号絶対値方式や1の補数に対する大きな利点です。