コンピュータの内部は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進数で表したとき、正しい表記はどれか。
- 1010
- 1101
- 1110
- 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にならない。