わっふるぶろぐ

わっふるが日々の出来事をただただ書いていきます~

『CODE』第15章 バイトとヘクス

第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個の記号で表していました!

f:id:waffle202:20200308143032p:image

これらは覚えやすく分かりやすいものが選ばれています。1つずつ説明していきます。

 

  • カウボーイのテンガロンハット

文字通り10ガロンなのでとても分かりやすいです。

フットボールは1チーム11人です。(僕はサッカーボール⚽️の方が分かりやすい気がします笑)

  • ドーナツ1ダース

1ダースは12個のことです。

  • 黒猫

黒猫は不幸な13を連想させるためです。日本ではあまりイメージは無い気がしますが…

  • 満月

新月から約2週間(14日)で満月になるためです。

  • ナイフ

これが知らなかったのですが、古代ローマの政治家であるカエサルが3月15日に暗殺された事を思い出させるためだそうです。これを知ってる日本人はほとんどいないと思います笑

f:id:waffle202:20200308231623j:plain

カエサル暗殺』(La Mort de César) フランス人画家ジャン=レオン・ジェロームによる1867年の作

 

次の表は、2進数、16進数、10進数の変換を示しています。

f:id:waffle202:20200309014719p:image

1バイトは常に2桁の16進数で表現されます。例えば、バイト1011 0110は16進数で表すと次のようになります。

f:id:waffle202:20200309014903p:image

ここまでは、先の6個の記号で16進法に不足していた数字を表現しましたが、実際にはアルファベットの最初の6文字で表されます。

 

0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 …

 

先の6個の記号よりは分かりづらくなりましたが、紙に書くのにはとてもラクになりました!

↓が本当の変換表です。

f:id:waffle202:20200309021702p:image

これで、バイト1011 0110はフットボールの絵を描くことなく、16進数B6で表すことができます!

B6が16進数であることを表す表記法として、数に続けて小文字のhを付けます。

 

B6h

 

僕はこれを前から知っていて、なぜhなのか気になってたんですが、hexadecimalの頭文字のhなんだそうです!

ちなみに、hexaで始まる単語は「6」に関係しています。hexagon、hexapod、hexameterなどがあります。

 

この章の後半では、16進数と10進数の変換など16進法について詳しく書かれています。気になる方はWikipediaでご確認ください!

 

十六進法 - Wikipedia

 

第16章では、メモリについて話します!

 

waffle202.hatenablog.com