第15章では、バイトと新たな記数法である16進数を紹介します!
今まで作ってきた加算器やラッチは、8ビットの値が回路を走り回ってました。ではなぜ8ビットなのか?この本の著者曰く、それはたまたま8ビットが都合良かったからだそうです。
ここで初めて言いますが、8ビットのデータは1バイトと呼ばれています!コンピュータの解説書で、中盤までバイトが出てこないのはとても斬新でした笑
バイト(byte)という言葉はIBMで生まれたそうです!語源はbiteで、bitと間違えないようにbyteと綴られました。1バイトの値は0から255までの正の整数や、2の補数を使えば-128から127までの正と負の整数を表すことができます。
ここで、各バイトを等しい個数のビットで分割して、見やすくしていきます。2ビットずつ4個に分ける4進法もありますが、ここでは4ビットずつ2個に分ける16進法(hexadecimal)を紹介します!
16進法は今までの2進法や8進法と違って、10進法よりも多くの数字を必要とします。16進法で数えると次のようになります。
0 1 2 3 4 5 6 7 8 9 ? ? ? ? ? ? 10 11 12 …
つまり、↑の「?」に入るあと6個の記号が必要です。残念な事に、アラビア数字にはこれらを表す記号がありません。そこで、この本では次の6個の記号で表していました!
これらは覚えやすく分かりやすいものが選ばれています。1つずつ説明していきます。
- カウボーイのテンガロンハット
文字通り10ガロンなのでとても分かりやすいです。
フットボールは1チーム11人です。(僕はサッカーボール⚽️の方が分かりやすい気がします笑)
- ドーナツ1ダース
1ダースは12個のことです。
- 黒猫
黒猫は不幸な13を連想させるためです。日本ではあまりイメージは無い気がしますが…
- 満月
新月から約2週間(14日)で満月になるためです。
- ナイフ
これが知らなかったのですが、古代ローマの政治家であるカエサルが3月15日に暗殺された事を思い出させるためだそうです。これを知ってる日本人はほとんどいないと思います笑
次の表は、2進数、16進数、10進数の変換を示しています。
1バイトは常に2桁の16進数で表現されます。例えば、バイト1011 0110は16進数で表すと次のようになります。
ここまでは、先の6個の記号で16進法に不足していた数字を表現しましたが、実際にはアルファベットの最初の6文字で表されます。
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 …
先の6個の記号よりは分かりづらくなりましたが、紙に書くのにはとてもラクになりました!
↓が本当の変換表です。
これで、バイト1011 0110はフットボールの絵を描くことなく、16進数B6で表すことができます!
B6が16進数であることを表す表記法として、数に続けて小文字のhを付けます。
B6h
僕はこれを前から知っていて、なぜhなのか気になってたんですが、hexadecimalの頭文字のhなんだそうです!
ちなみに、hexaで始まる単語は「6」に関係しています。hexagon、hexapod、hexameterなどがあります。
この章の後半では、16進数と10進数の変換など16進法について詳しく書かれています。気になる方はWikipediaでご確認ください!
第16章では、メモリについて話します!