Yomiage
メニュー

離散数学 04:補数と負の数の表現

更新 2026/7/7 10:29:12 公開

投稿者: しゅりりん

離散数学 04:補数と負の数の表現

コンピュータは、負の数もビット列で表します。情報処理技術者試験では、特に2の補数表現がよく出ます。補数表現を使うと、引き算を足し算として扱いやすくなります。

2の補数の作り方

nビットで正の数 x の負数を表すには、次の手順を使います。

  • x を nビットの2進数にする
  • 0 と 1 を反転する
  • 1 を足す

例: 8ビットで -5 を表す。

5 は 00000101 です。反転すると 11111010、1 を足すと 11111011 になります。したがって、8ビットの2の補数表現では -5 は 11111011 です。

表せる範囲

nビットの符号付き2の補数では、表せる範囲は -2^(n-1) から 2^(n-1)-1 です。8ビットなら -128 から 127 です。正の側が 127 で止まるのは、0 を正側に含むからです。

オーバーフローの見方

8ビット符号付きで 127 に 1 を足すと、01111111 + 00000001 = 10000000 になります。これは -128 を表します。数学では 128 になるはずなのに、8ビットでは表せないためオーバーフローです。

試験での見方

補数問題では、何ビットで表すかを最初に確認します。4ビット、8ビット、16ビットでは同じ -1 でも表記の長さが変わります。-1 は、どのビット幅でも全ビットが 1 になるのが特徴です。

確認問題

4ビットの2の補数表現で -3 はどう表されるでしょうか。

3 は 0011、反転して 1100、1 を足して 1101 です。

このブラウザでは Web Speech API が利用できません。

1 / 18 · 停止中