補数表現と浮動小数点|ITパスポート試験対策
コンピュータ内部の数値表現(2 の補数による負数表現、浮動小数点形式 IEEE 754)をITパスポート試験向けに整理します。
なぜ補数を使うのか
コンピュータ内部では数値をすべて0と1のビット列だけで表現するため、マイナス記号が使えません。負の数を表現するための特別な仕組みが必要になります。そこで広く利用されているのが補数表現です。補数表現を用いることで、加算と減算を同じ回路で処理できる利点もあります。
1 の補数と 2 の補数
1 の補数
1の補数は、すべてのビットを反転(0を1に、1を0に)することで負の数を表現する方式です。例えば4ビットで5(0101)の1の補数は1010になります。ただしこの方式では、0の表現が+0(0000)と-0(1111)の2通り存在するという欠点があります。
2 の補数(広く使われる)
2の補数は、1の補数に1を加えた値として定義されます。この方式では0の表現が1通りに統一され、加算と減算を同じ回路で処理できるため、現代のコンピュータで標準的に採用されています。
2 の補数で負の数を表現
4ビットで-5を表現する手順を見ていきましょう。まず+5を0101と表します。次にすべてのビットを反転させて1010(1の補数)を得ます。最後に1を加算すると1011となり、これが-5の2の補数表現です。検算として5+(-5)を計算すると0101+1011=10000となり、5ビット目を切り捨てると0000=0になるため正しいことが確認できます。
n ビットで表せる範囲
符号なし整数では0から2ⁿ-1まで表現できます。符号あり整数(2の補数)では-2ⁿ⁻¹から2ⁿ⁻¹-1までとなり、8ビットなら-128から+127まで表現可能です。
浮動小数点表記
浮動小数点表記は、符号、仮数、指数を用いて数値を表現する方式で、「符号×仮数×2の指数乗」の形式をとります。大きな数や小さな数を効率的に扱えるため、科学技術計算などで広く使用されています。IEEE 754規格が標準として採用されています。
IEEE 754 の単精度(32 ビット)
| 部分 | ビット数 | 内容 |
|---|---|---|
| 符号 | 1 | + or - |
| 指数部 | 8 | バイアス付きで表現 |
| 仮数部 | 23 | 小数点以下の値 |
倍精度(64ビット)では指数部が11ビット、仮数部が52ビットとなり、より広い範囲と高い精度を提供します。浮動小数点のメリットは広い数値範囲を扱えることですが、デメリットとして誤差が発生する可能性があります。
浮動小数点の誤差
丸め誤差は、表現できない数値を近似する際に発生します。桁落ちは、非常に近い値同士を引き算したときに有効桁数が減少する現象です。情報落ちは、大きな数と小さな数を加算する際に小さい方の数値が無視されてしまう現象です。
ITパスポート試験での出題ポイント
2の補数で負の数を表現する手順は頻出です。nビットで表せる範囲の計算、浮動小数点と固定小数点の違い、そして浮動小数点で発生する誤差の種類も押さえておく必要があります。
過去問の典型パターン
- 「8 ビット 2 の補数で -1 を表すとどうなるか」型 → 11111111
- 「浮動小数点で発生する誤差はどれか」型
関連用語
- 進数変換と論理演算(2進数・16進数と論理演算)
- CPU・メモリ(CPU・メモリ・ストレージの違い)
学習のコツ
2の補数の手順「ビット反転→+1」を繰り返し口に出して練習すれば、試験本番でも素早く計算できます。8ビットの範囲(-128〜+127)は暗記しておくと便利です。誤差の種類は「丸め誤差・桁落ち・情報落ち」の3つをセットで覚えましょう。
まとめ
2の補数の計算手順、nビットで表せる範囲、浮動小数点の誤差の3点を確実に理解すれば、関連問題で安定して得点できます。テクノロジ系を体系的に学ぶにはテクノロジ系まとめ、本番形式で練習したい方は模擬試験をご活用ください。