2の補数の計算
この2の補数の計算ツールは、符号付き整数を2進数に、また2進数から整数に変換します。例:−42は8ビットで1101 0110です。
計算方法
2の補数は、コンピュータで負の整数を表す標準的な方法です。最上位ビットが符号の役目をし、足し算と引き算を同じ回路で、特別な場合分けなしに行えます。
変換のしかた
負でない数は、ふつうに2進数で書き、左を0で埋めます。負の数は、絶対値を2進数で書き、すべてのビットを反転して(1の補数)、1を足します。逆に、最上位ビットが1なら、値はu−2ⁿです(uはビット列を符号なしの数として読んだ値)。nビットで表せる範囲は−2^(n−1)〜2^(n−1)−1で、8ビットなら-128〜127です。
計算例
−42を8ビットで表します。絶対値42は0010 1010です。反転すると1101 0101(1の補数)、1を足すと1101 0110、16進数でD6です。検算:1101 0110を符号なしで読むと214で、214−256=-42になります。1000 0000は8ビットで最小の-128を表し、+128はもう収まりません。16ビットでは−1は16進数でFFFFです。1101 0110を1の補数として読むと、値は-41になります。
- 1の補数は、ビットを反転するだけの方式です。0が2通り(+0と−0)あります。
- 2の補数は0が1通りだけで、負の側の範囲が1つ広くなります。
- 短いビット列は、左を0で埋めます(1では埋めません)。
よくある質問
負の数を2の補数にするにはどうしますか?
絶対値を2進数で書き、すべてのビットを反転して、1を足します。8ビットの−42なら、0010 1010 → 1101 0101 → 1101 0110です。
1の補数と2の補数の違いは何ですか?
1の補数はビットを反転するだけで、2の補数はそのあとに1を足します。これにより0が1通りになり、特別な規則なしで計算できます。
1バイトを2の補数で表すと、範囲はどうなりますか?
8ビットでは-128〜127で、256通りの値を表せます。
出典・根拠
- Hennessy/Patterson, Computer Organization and Design, Kap. „Signed and Unsigned Numbers“ (Zweierkomplement)
- Wikipedia – Zweierkomplement
更新日: · 編集方針
関連ツール
- 2進数計算ツール(計算過程つき)2進数計算をブラウザで:足し算・引き算・掛け算・割り算とAND・OR・XORに対応し、結果は10進数・16進数・2の補数でも表示。足し算は筆算の繰り上がりも確認できます。
- 進数変換ツール:途中式つきの進数変換2進数・8進数・10進数・16進数など2〜36進数を相互に変換する進数変換ツール。変換のやり方を途中式で表示し、小数や2の補数にも対応します。
- 真理値表ジェネレーター真理値表を論理式から自動作成:AND・OR・NOT・XOR・→・↔に対応し、途中の計算列、加法標準形・乗法標準形、2つの式が等価かの判定までブラウザですぐに確認できます。
- 累乗計算機(べき乗・ルート・対数)累乗・べき乗の計算を途中式付きで。マイナスや分数の指数、n乗根、底を自由に選べる対数(log・ln)にも対応し、正確な値と指数表記を表示します。
- 対数計算ツール対数計算を任意の底で。log・ln・常用対数・log2に対応し、底の変換公式による途中式と検算、結果が入る整数の範囲まで表示します。登録不要・無料です。
- MB・GB変換MB・GB変換:1GB=1,000MB(1GiB=1,024MiB)。KB、TB、ビット、Mbitにも変換でき、ダウンロード時間の目安と換算表つきです。登録不要で無料。
- オンライン電卓無料のオンライン電卓。アプリ不要で、スマホでもパソコンでも入力するとすぐ答えが出ます。四則演算の優先順位、かっこ、パーセント、ルート、途中式と履歴に対応。
- 100マス計算と数表(1〜100)のプリント作成100マス計算(たし算・ひき算・かけ算)と1〜100の数表を無料でPDF作成。数表は完成版・空らん・穴あきから選べ、答え付き。1〜120や10とびにも対応。
- 数直線プリント(テンプレート・問題)10・20・50・100・1000までの数直線、負の数や0.1きざみの数直線をPDFで作成。テンプレート、あいている数を書く問題、矢印の問題に対応、答え付き。