基本情報技術者試験対策(3)「2進数を学ぼう(3)」

スポンサーリンク
IT系

はじめに

前回は、ビット数と符号化という切り口から2進数を学ぶ意義を整理した。今回はシリーズの最終回として、もう一つ別の角度から2進数の意義を見ていく。取り上げるのは、2進数と深い関係を持つ「16進数」と「8進数」が、実際にどのような役割を果たしているかである。
なお、10進数との具体的な変換手順や、負の数の表現方法については、別の回で改めて扱う予定である。今回はあくまで「なぜこれらの記数法が使われているのか」という役割に焦点を当てる。

2進数をそのまま使うと何が困るのか

コンピュータの内部では2進数がそのまま使われているが、人間が2進数を直接読み書きするのは非常に骨が折れる。例えば1バイト分の値でも 11001000 のように0と1が8つ並ぶだけで読み取りにくく、桁数がさらに増えるメモリアドレスやデータの塊になると、人間の目には0と1の羅列にしか見えなくなってしまう。

そこで実務や試験の場面では、2進数を人間にとって読みやすい形に「まとめて表示する」ための記数法として、16進数や8進数が使われている。

16進数の役割

16進数は、2進数4桁分をちょうど1桁にまとめて表現できるという特徴を持つ。この「4桁単位でまとめられる」という性質のおかげで、2進数と16進数の間は非常に見通しよく対応させることができ、実務では次のような場面で広く使われている。

  • メモリアドレスの表記:プログラムのデバッグ時に表示されるメモリアドレスは、多くの場合16進数で表記される。
  • カラーコード:Webデザインなどで使われる #FF8800 のようなカラーコードは、赤・緑・青それぞれの明るさを16進数2桁ずつで表したものである。
  • MACアドレス:ネットワーク機器を識別するMACアドレスも、16進数で表記されるのが一般的である。
  • データのダンプ表示:プログラムが扱うバイナリデータをそのまま人間が確認する際、16進数で並べて表示する「16進ダンプ」という手法がよく使われる。

いずれも、2進数のままでは読みにくいデータを、桁数を4分の1に圧縮しつつ人間が扱いやすい形にする、という16進数の役割を反映したものである。

8進数の役割

8進数は、2進数3桁分を1桁にまとめる記数法である。現在では16進数ほど頻繁に見かけることはないが、次のような場面で今も使われている。

  • Unix系OSのファイル権限表記:Unix系OS(Linuxなど)のファイル権限は、所有者・グループ・その他のユーザーそれぞれに対する「読み取り・書き込み・実行」の権限を3ビットで表し、それを8進数1桁として表記する。chmod 755 のような表記を目にしたことがある人も多いはずである。
  • 歴史的な経緯:初期のコンピュータには、1ワードのビット数が3の倍数で設計されていた機種もあり、そうした環境では8進数が自然な単位として使われていた。

現在では16進数の方が主流だが、ファイル権限の表記のように、8進数が今なお現役で使われている場面があることは押さえておきたい。

なぜ試験でも問われるのか

基本情報技術者試験では、16進数や8進数そのものの読み方に加えて、こうした記数法が実務のどのような場面で使われているかという背景知識も出題されることがある。単に「変換ができる」だけでなく、「なぜその記数法が選ばれているのか」という理由まで理解しておくと、初見の問題にも応用が利きやすくなる。

シリーズのまとめ

3回にわたり、2進数を学ぶ意義について次のような切り口から整理してきた。

  • 第1回:コンピュータが2進数を使う理由、ビットとバイトという単位
  • 第2回:ビット数と表現できるパターン数の関係、文字コードや色の符号化
  • 第3回:16進数・8進数が実務で果たしている役割

2進数は、単に「数値を変換する練習対象」ではなく、符号化の仕組みや、16進数・8進数という関連する記数法とセットで理解することで、テクノロジ系分野全体の土台としての意味がより深く見えてくる。10進数との変換手順や負の数の表現方法については、改めて別の回で取り上げていく予定である。

コメント

タイトルとURLをコピーしました