【情報I】補数とは?2の補数・1の補数を基礎から分かりやすく解説

フリーランスボード

20万件以上の案件から、副業に最適なリモート・週3〜の案件を一括検索できるプラットフォーム。プロフィール登録でAIスカウトが自動的にマッチング案件を提案。市場統計や単価相場、エージェントの口コミも無料で閲覧可能なため、本業を続けながら効率的に高単価の副業案件を探せます。フリーランスボード

ITプロパートナーズ

週2〜3日から働ける柔軟な案件が業界トップクラスの豊富さを誇るフリーランスエージェント。エンド直契約のため高単価で、週3日稼働でも十分な報酬を得られます。リモートや時間フレキシブルな案件も多数。スタートアップ・ベンチャー中心で、トレンド技術を使った魅力的な案件が揃っています。専属エージェントが案件紹介から契約交渉までサポート。利用企業2,000社以上の実績。ITプロパートナーズ

Midworks 10,000件以上の案件を保有し、週3日〜・フルリモートなど柔軟な働き方に対応。高単価案件が豊富で、報酬保障制度(60%)や保険料負担(50%)など正社員並みの手厚い福利厚生が特徴。通勤交通費(月3万円)、スキルアップ費用(月1万円)の支給に加え、リロクラブ・freeeが無料利用可能。非公開案件80%以上、支払いサイト20日で安心して稼働できます。Midworks

テックジム東京本校では、情報科目の受験対策指導もご用意しております。

補数とは何か

補数とは、コンピュータで負の数を表現するための仕組みです。情報Iで学ぶ重要な概念の一つで、コンピュータ内部で数値がどのように扱われているかを理解する上で欠かせません。

私たちが日常で使う10進数では、負の数を表すときに「マイナス記号(-)」を使いますが、コンピュータは0と1のデジタル信号しか扱えません。そこで考案されたのが補数を使った表現方法です。

なぜ補数が必要なのか

コンピュータが補数を使う理由は主に2つあります。

計算回路の簡素化: 補数を使えば、引き算を足し算の回路で実行できます。これにより、ハードウェアの設計が大幅に簡単になり、コストも削減できます。

データ表現の統一: 符号付き整数と符号なし整数を同じビット列で効率的に扱えるようになります。

2の補数とは

2の補数は、現代のコンピュータで最も広く使われている負の数の表現方法です。

2の補数の求め方

2の補数を求める手順は次の通りです。

  1. 元の2進数のすべてのビットを反転させる(0→1、1→0)
  2. 反転した結果に1を加える

具体例: 5の2の補数を求める(8ビットの場合)

5の2進数表現:     00000101
ビット反転:       11111010
1を加える:     +        1
                ─────────
2の補数:         11111011(これが-5を表す)

2の補数の特徴

2の補数には以下のような優れた特徴があります。

ゼロの表現が一つだけ: 1の補数と異なり、+0と-0の区別がありません。00000000のみがゼロを表します。

自然な加算: 正の数と負の数を普通に足し算するだけで正しい結果が得られます。溢れたビットは無視します。

表現範囲: nビットの2の補数では、-2^(n-1)から2^(n-1)-1までの整数を表現できます。例えば8ビットなら-128から127までです。

2の補数での計算例

5 + (-3) = 2を計算する場合(8ビット)

 5:  00000101
-3:  11111101  (3の2の補数)
   ──────────
    100000010  → 最上位の桁あふれを無視
   
結果: 00000010 = 2

1の補数とは

1の補数は2の補数の前身となる表現方法で、現在ではあまり使われていませんが、理解しておくことで2の補数との違いが明確になります。

1の補数の求め方

1の補数を求める方法は非常にシンプルです。

  • すべてのビットを反転させる(0→1、1→0)だけ

具体例: 5の1の補数を求める(8ビットの場合)

5の2進数表現:  00000101
ビット反転:    11111010(これが-5を表す)

1の補数の問題点

1の補数にはいくつかの問題があります。

ゼロの表現が2つ存在: 00000000(+0)と11111111(-0)の両方がゼロを表してしまいます。

加算の複雑さ: 計算結果に対して「エンドアラウンドキャリー」という特別な処理が必要になります。

これらの理由から、現代のコンピュータでは2の補数が標準となっています。

補数の見分け方

2進数が正の数か負の数かを見分けるには、最上位ビット(MSB: Most Significant Bit) を確認します。

  • 最上位ビットが0 → 正の数
  • 最上位ビットが1 → 負の数

例えば8ビットの2の補数表現では次のようになります。

01111111 = 127(最大の正の数)
00000001 = 1
00000000 = 0
11111111 = -1
10000000 = -128(最小の負の数)

情報Iの試験で押さえるべきポイント

情報Iの試験や大学入学共通テストで補数に関する問題が出題される場合、以下のポイントが重要です。

基本的な変換: 10進数から2の補数への変換、2の補数から10進数への変換ができること。

計算問題: 2の補数を使った加算や減算の手順を理解していること。

表現範囲: nビットの2の補数で表現できる数値の範囲を理解していること。

オーバーフロー: 計算結果が表現範囲を超えた場合に何が起こるかを理解していること。

補数に関する練習問題

問題1: 2の補数への変換

次の10進数を8ビットの2の補数で表現してください。

  1. -10
  2. -1
  3. -128

解答

  1. -10: 11110110
  2. -1: 11111111
  3. -128: 10000000

問題2: 2の補数から10進数への変換

次の8ビット2の補数は10進数でいくつですか。

  1. 11000000
  2. 10000001
  3. 01111111

解答

  1. 11000000: -64
  2. 10000001: -127
  3. 01111111: 127

まとめ

補数はコンピュータが負の数を扱うための基本的な仕組みです。特に2の補数は現代のコンピュータで標準的に使われており、情報Iを学ぶ上で必須の知識となっています。

2の補数の求め方(ビット反転+1)と計算方法をしっかり理解し、実際に手を動かして練習することで、確実に身につけることができます。情報Iの試験対策としても、基本的な変換と計算ができるようになることを目標にしましょう。


関連キーワード: 情報I、補数、2の補数、1の補数、2進数、負の数、ビット演算、符号付き整数、コンピュータサイエンス、大学入学共通テスト

フリーランスボード

20万件以上の案件から、副業に最適なリモート・週3〜の案件を一括検索できるプラットフォーム。プロフィール登録でAIスカウトが自動的にマッチング案件を提案。市場統計や単価相場、エージェントの口コミも無料で閲覧可能なため、本業を続けながら効率的に高単価の副業案件を探せます。フリーランスボード

ITプロパートナーズ

週2〜3日から働ける柔軟な案件が業界トップクラスの豊富さを誇るフリーランスエージェント。エンド直契約のため高単価で、週3日稼働でも十分な報酬を得られます。リモートや時間フレキシブルな案件も多数。スタートアップ・ベンチャー中心で、トレンド技術を使った魅力的な案件が揃っています。専属エージェントが案件紹介から契約交渉までサポート。利用企業2,000社以上の実績。ITプロパートナーズ

Midworks 10,000件以上の案件を保有し、週3日〜・フルリモートなど柔軟な働き方に対応。高単価案件が豊富で、報酬保障制度(60%)や保険料負担(50%)など正社員並みの手厚い福利厚生が特徴。通勤交通費(月3万円)、スキルアップ費用(月1万円)の支給に加え、リロクラブ・freeeが無料利用可能。非公開案件80%以上、支払いサイト20日で安心して稼働できます。Midworks

らくらくPython塾 – 読むだけでマスター

【現役エンジニア歓迎】プログラミング学習お悩み相談会

【情報I】受験対策・お悩み相談会(オンライン・無料)