負の数の表現(補数表現)

更新日:

用語解説

補数表現は、固定ビット長の2進数で負の数を表し、減算を負数の加算として同じ加算回路で処理できるようにする方式です。現在の一般的な符号付き整数では2の補数を用います。

■ 試験で押さえるポイント

  • nビットで正の値xに対応する負数x-xは、xの全ビットを反転して1を加えると求められます。同じ操作をもう一度行うと元の値へ戻ります。

  • 最上位ビットが0なら0以上、1なら負数です。nビット2の補数の範囲は2n1-2^{n-1}2n112^{n-1}-1で、正負の範囲は対称ではありません。

  • 加算では通常の2進加算を行い、最上位から出た桁上がりを捨てます。ただし同符号同士を加えて結果の符号が変わる場合はオーバーフローです。

  • 1の補数表現はビット反転だけで負数を作るため+0+00-0があります。2の補数では0が一つになり、加減算回路を共通化しやすい点が重要です。

x=2nx-x = 2^n - x

2n1x2n11-2^{n-1} \leq x \leq 2^{n-1}-1

■ 選択肢での判断ポイント

2の補数は「全ビットを反転して1を加える」、値を戻すときも同じ操作を行います。最上位ビットの重みは2n1-2^{n-1}として値を直接計算する方法も使えます。

例: 8ビットの5500000101200000101_2です。反転すると11111010211111010_2、さらに1を加えた11111011211111011_25-5を表します。5+(5)5+(-5)の桁上がりを捨てると00000000200000000_2になります。

同じ分野の用語