IT資格試験のコミュニティやエンジニアが集う技術フォーラムでは、基数変換を巡る受験者たちの苦悩と後悔が毎年のように投稿されている。
「本番で時間が足りなくなり、焦って10進数への変換筆算を繰り返した結果、単純な引き算を間違えて不合格になった」「2進数の桁数が多すぎて問題用紙のマークシートを見間違えた」といった声は後を絶たない。特に独立行政法人情報処理推進機構(IPA)が実施する基本情報技術者試験 基数変換 問題は、単に数値を変換させるだけでなく、論理演算(AND、OR、XOR)やビットシフトと複合して出題されるケースが通例だ。基数変換の段階で1分以上浪費していては、制限時間内に全問を解き切ることは極めて難しくなる。
では、現場のプロはなぜそこまで16進数にこだわるのか。背景には2進数 16進数 なぜ使うのか 理由と直結するコンピュータの物理的制約がある。
コンピュータのCPUやメモリは、電圧の高低(ON/OFF)を識別するスイッチの集合体であり、物理層では「2進数」しか理解できない。しかし、2進数は人間にとってあまりにも視認性が悪い。たとえば、IPv4のサブネットマスクである「$11111111.11111111.11111111.00000000$」という文字列をパッと見て瞬時にミスを発見できる人間はまずいない。
そこで浮上するのがビットとバイト 16進数 関係性だ。現代のコンピュータはデータを8ビット(=1バイト)単位で処理する。4ビットを1文字で表現できる16進数を使えば、1バイトの情報は過不足なく「英数字2文字(00〜FF)」に凝縮される。2進数で32文字並ぶデータも、16進数ならわずか8文字で記述できる。人間が認識しやすい可読性を担保しつつ、コンピュータ内部のビット配列の形を崩さずに扱える絶妙なインターフェース、それが16進数の正体なのだ。