コンピュータは0と1の2進数で動作します。基本情報試験では2進数・16進数の変換が頻出。本記事で基礎を固めましょう。
ねぇ先生、コンピュータって0と1だけで動いてるって本当?
なんでそんな不便そうな数で動かしてるの?
ふふっ、いい質問ね。
コンピュータの内部は2進数で動いているの。
電圧のオン (1) とオフ (0) で表すのが、一番シンプルで信頼性も高いからなのよ。
私たちが普段使うのが10進数で、コンピュータが使うのが2進数。
基本情報試験では、2進数と10進数、そして16進数の相互変換が頻出よ。
16進数って、A・B・C・D・E・Fも数字みたいに使うやつですかぁ?
そう。
16進数は0〜9とA〜Fで0〜15を表すの。
例えば10進数の10はAになるわね。
じゃあ、10進数の13を2進数にするにはどうするの?
あたし、まだイメージわかないなぁ…
13を2で割り続けて、出た余りを下から並べるのよ。
13÷2=6余り1、6÷2=3余り0、3÷2=1余り1、1÷2=0余り1。
下から並べると 1101 になるわ。
13 = 8 + 4 + 0 + 1 = 2³ + 2² + 2⁰ という見方もできるわね。
各桁が2の累乗を表しているの。
わぁ、なるほど〜!
2進数の桁の重みって、1, 2, 4, 8, 16, 32…って増えていくんですねぇ。
16進数への変換は?
2進数の4桁が、ちょうど16進数の1桁に対応するの。
1101 (2進数) は 13 だから、16進数だと D ね。
だから2進数→16進数は4桁ずつ区切って変換すればいいだけよ。
例えば 8ビットの2進数 11010110 は、4桁ずつ区切って 1101 0110 = D6 (16進数) になるわ。
覚えやすいでしょ?
おぉ、4桁ずつ区切れば一気に変換できちゃうじゃん!
これ、めっちゃ便利だね!
試験ではどう出るんですかぁ?
「2進数の 1010 1100 を16進数で表せ」「16進数 FF を10進数で表せ」のような問題が定番。
FFは255よ。
覚えておいて。
また、1バイト = 8ビット = 16進数2桁 という対応も重要。
色コード #FF8800 みたいな表記もこの仕組みなの。
確認クイズ
10進数の 25 を2進数で表したものはどれか。
- 10101
- 11001
- 11011
- 10011
こたえを見る
正解: 2. 11001
25 = 16 + 8 + 1 = 2⁴ + 2³ + 2⁰ なので、2進数では 11001 となります。25÷2=12余り1, 12÷2=6余り0, 6÷2=3余り0, 3÷2=1余り1, 1÷2=0余り1 を逆順に並べても 11001 になります。