2進数・16進数

2進数と16進数の相互変換、ビット・バイトの単位、容量表示の差まで会話でやさしく整理。

編集・検証: ITパスポートスタディ編集部 公式情報: IPA ITパスポート試験公式ページ 制作・検証方針

コンピュータの内部は0と1だけの世界。なぜそうなるのか、そして人間が読みやすくするための16進数まで、変換のコツと単位をまとめて整理しましょう。

星見 めい(普段) 星見 めい

コンピュータって、結局0と1だけで動いてるんでしょ? なんでそんな不便なことしてるの?

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

いい疑問ね。
電気のスイッチって「オン」と「オフ」の2状態がいちばん作りやすいの。
だから0と1の2つだけで数を表す2進数が、機械にとっていちばん素直なのよ。

小夜川 ほのか(普段) 小夜川 ほのか

わたしたちが指10本で数えるから10進数なのと、似てる感じですかぁ?

蜂谷 まこと(普段) 蜂谷 まこと

まさにそうですね。
人間は10で繰り上がる、コンピュータは2で繰り上がる。
それだけの違いです。
補足すると、各桁の重みも10進数が1・10・100…なのに対し、2進数は1・2・4・8・16…と2倍ずつになります。

星見 めい(普段) 星見 めい

じゃあ2進数の1101って、10進数だといくつになるわけ?

蜂谷 まこと(普段) 蜂谷 まこと

右の桁から1・2・4・8の重みをかけて足します。
1101なら 1×8 + 1×4 + 0×2 + 1×1 = 13ですね。

小夜川 ほのか(普段) 小夜川 ほのか

逆に、10進数の13を2進数にしたいときはどうするんですかぁ?

蜂谷 まこと(普段) 蜂谷 まこと

2で割り続けて、余りを下から読みます。
13÷2=6余1、6÷2=3余0、3÷2=1余1、1÷2=0余1。
下から並べて1101です。

小夜川 ほのか(びっくり) 小夜川 ほのか

あっ、余りを下から読むんですねぇ。
そこ間違えそうですぅ。

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

ふふ、ほのかちゃんいいところに気づいたわ。
上から読むと逆になっちゃうから、そこは試験のひっかけポイントなのよ。

星見 めい(普段) 星見 めい

でも2進数って桁が長くてさ、1101とか11010110とか、ぱっと見わけわかんないじゃん。

紫垣 こはる 先生(普段) 紫垣 こはる 先生

そこで登場するのが16進数よ。
2進数4桁が16進数のちょうど1桁に対応するから、長い2進数を短くまとめられるの。

星見 めい(普段) 星見 めい

4桁で1桁にまとまる? なんで4桁なの?

蜂谷 まこと(普段) 蜂谷 まこと

2進数4桁で表せる数が2の4乗=16通りだからです。
ちょうど16進数1桁の幅と一致するんですね。
例えば 11010110 は4桁ずつ区切って 1101 と 0110、それぞれD・6なので16進数ではD6になります。

星見 めい(普段) 星見 めい

あ、Fって15のことだよね? 9の次がアルファベットってちょっと変な感じ。

蜂谷 まこと(笑顔) 蜂谷 まこと

はい、A=10、B=11、C=12、D=13、E=14、F=15です。
Webの色指定 #FF0000 が赤(255,0,0)なのもこの16進数表記ですよ。

小夜川 ほのか(笑顔) 小夜川 ほのか

数字が足りないからアルファベットを借りてるんですねぇ。
なんだか可愛いですぅ。

紫垣 こはる 先生(普段) 紫垣 こはる 先生

さて、コンピュータが扱う情報量の単位も押さえましょう。
2進数1桁をビット、それが8個集まったものをバイトと呼ぶのよ。

小夜川 ほのか(普段) 小夜川 ほのか

1バイトは8ビット、っと。
これは丸暗記ですねぇ。

星見 めい(普段) 星見 めい

KBとかMBとかGBもバイトの仲間? あれもよく見るやつだよね。

紫垣 こはる 先生(普段) 紫垣 こはる 先生

そうよ。
ここは少しややこしいの。
本来コンピュータは1024倍ずつ大きくなるKiB・MiB・GiBという単位を使うわ。
でもメーカーは1000倍ずつのKB・MB・GBで表示することも多いの。

蜂谷 まこと(普段) 蜂谷 まこと

補足すると、1024と1000のズレが容量表示の差になります。
例えば1TB(=1兆バイト)のSSDは、1024進みで数え直すと約931GiB。
だから買ったストレージが表示より少なく見えるんです。

星見 めい(笑い) 星見 めい

マジか! 不良品かと思ってたけど、ただの単位の違いだったのね。
スッキリした!

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

ふふ、納得してもらえてよかったわ。
まとめると、内部は2進数、人が読むときは16進数で短く、量はビットとバイトで数える。
この3つの関係がつかめれば、計算問題も怖くないわよ。

確認クイズ

10進数の「13」を2進数で表したとき、正しい表記はどれか。

  1. 1010
  2. 1101
  3. 1110
  4. 1111
こたえを見る

正解: 2. 1101

正解は1101。13÷2=6余1、6÷2=3余0、3÷2=1余1、1÷2=0余1を下から読んで1101(=8+4+0+1=13)。1010は10、1110は14、1111は15であり、いずれも13にならない。

小夜川ほのか、星見めいが調理室でカップケーキ作りを楽しむ様子

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。