2進数・16進数を計算で解く — 基数変換と浮動小数点の仕組み
導入
「0.1 + 0.2 が 0.3 にならない」という話を聞いたことはないでしょうか。プログラムが数を扱うとき、内部では 2 進数を使っているため、私たちが当然と思う計算が微妙にずれることがあります。この仕組みを理解するのが、基本情報技術者試験の出発点です。
くわしく知ろう
コンピュータは 0 と 1 だけで構成される 2 進数ですべての情報を表します。10 進数の 13 を 2 進数に変換するには、2 で繰り返し割り算し、余りを下から並べます。13÷2=6 余り 1、6÷2=3 余り 0、3÷2=1 余り 1、1÷2=0 余り 1 となり、下から読むと 1101 です。16 進数は 2 進数 4 桁をまとめた表記で、プログラムのメモリ表示などに広く使われています。
負の数は「2 の補数」で表現されます。ある数の全ビットを反転(1 の補数)し、さらに 1 を加えた値が 2 の補数です。8 ビットで −1 を表すと、00000001 を反転した 11111110 に 1 を加えた 11111111 になります。この方式を使うと、加算回路だけで引き算も実現できる点が優れています。
浮動小数点数は「符号・指数部・仮数部」の 3 要素で実数を表し、IEEE 754 として標準化されています。10 進数の 0.1 は 2 進数では循環小数となり、有限のビット数では正確に表現できません。これが「浮動小数点誤差」と呼ばれる現象で、金融計算など精度が求められる場面では注意が必要です。文字コードも数の表現で、ASCII(7 ビット・英数字)や多言語対応の UTF-8 が代表的な規格として知られています。
具体例
たとえば HTML で指定する色 #FF8000 は 16 進数で、FF(赤=255)・80(緑=128)・00(青=0)を意味します。一方、家計簿アプリで 0.1 円を 10 回加算したら 1.0 円にならずわずかにずれた、という体験は浮動小数点誤差の典型例です。
まとめ・試験ポイント
- 基数変換=2 で繰り返し割り算し余りを下から並べると 2 進数が得られる
- 2 進数 4 桁=16 進数 1 桁(相互変換は桁ごとに対応)
- 2 の補数=全ビット反転 +1 で負の数を表現し、加算回路だけで減算が実現できる
- 浮動小数点=符号・指数部・仮数部の 3 要素(IEEE 754)。0.1 など一部の小数は 2 進数で正確に表現できない
- 文字コード:ASCII(7 ビット英数字)、UTF-8(多言語・現在主流)
- 試験では 10 進↔2 進の変換計算、2 の補数による負数表現、浮動小数点誤差の原因を問う出題が多い
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する