はじめに
以前の記事で,2進数は3桁ずつ読めば無理なく10進数への変換が暗算でできるようになるよー,というお話をしました. → [techaday:0006] 2進数は下から3桁ずつ読もう この記事への反応として,3桁の2進数なら確かに計算すればすぐに出るけど,覚えようという気にならないというお言葉をいただいたので,一言レベルですが8進数との関連に触れながら書こうと思います.
前提知識
- 2進数とは何かがわかればおっけー
効能
- とりあえずこれだけ覚えればいろいろできるようになる
身につけよう
身につけましょうといっても計算するだけです. (書き方はあんまり良くないですが,気にしないでください) $$ (\mathrm{abc})_2 = (4\mathrm{a} + 2\mathrm{b} + \mathrm{c})_{10} $$
\((110)_2 = (4+2)_{10} = (6)_{10}\) ですし, \((011)_2 = (3)_{10} \) です. 言われればすごく単純な話で覚えるほどのことでもないのですが,意識したことがないと勝手に壁を作ってしまっているかもしれませんので改めて書きました.
\((111)_2 = (7)_{10}\) ぐらいは暗記してしまってもいいと思います.
ここまでの内容が納得できれば,以下の記事を読めば 8桁の2進数が簡単に読めるようになります. → [techaday:0006] 2進数は下から3桁ずつ読もう
以下は関連する御託とかうんちくです.
なぜ3桁か
早速,「4桁の方が良かったりしないの?16進数とかあるし.」という疑問が湧くかもしれません.
なぜ3桁か,という話は [techaday:0006] 2進数は下から3桁ずつ読もう にも書きましたが,10進数にしたときに1桁におさまるという理由からです. 3桁の2進数の最大値 \((111)_2\) は10進数では 7 で,1桁でおさまります.4桁の2進数では最大値が 15 になりますから,10進数で1桁におさまるとは限りません.
では10進数で1桁におさまることの利点とは何でしょうか?主に2つあります.
- 10進数に直す過程で繰り上がりがない
- 小学2年生で練習させられる九九の範囲で掛け算ができる
「何を幼稚なことを言っているんだねキミは」と思われるかもしれませんが,数値の計算がひどく苦手な私のような人間にとっては 2桁 x 2桁 を計算しろと言われただけで,暗算だと間違うので紙を取り出してしまいます. (おそらく理系でもこういう人はたくさんいると思います.1サンプルここにいます.) よっぽど数字の計算が得意な人でない限り,繰り上がりや2桁の掛け算が出現した時に100%間違わないという自信がある人はいないと勝手に思っています. 一方で,上記の2つの性質が満たされている範囲内では,常識の範囲で考えれば99.99%ぐらい間違わずに計算できるのではないでしょうか.
つまりは,間違わずに計算するための都合の良い性質を,3桁の2進数は持っているわけです.
8進数
話題は少し変わって,8進数の話をします.8進数は,8を底として位取りをする数です. 要するに,8になろうとしたときに1桁上がります. $$ (8)_{10} = (10)_8 $$
2進数との関係を見てみると,\((8)_{10} = (1000)_2\) ですから,8進数は2進数を3桁区切りで見ていることと等価になります. ただ,8進数はある意味扱いにくい数でして,10進数と見た目があまり変わらないので混乱するという弱点があります.
8進数は,初期のコンピュータの世界で少しだけ使われていたらしいのですが,今ではほとんど使う場面を見かけません. 理由としては,当時のコンピュータ(PDP-8とかの時代です)では3の倍数ビット(8進数での1桁)を基準にしてデータを切っていたのですが,それ以降のコンピュータを見れば分かるように4の倍数を使用するように移行していき,8進数の代わりに16進数が使われるようになっていったからです. ちなみに自然言語で8進数を使っていた民族もいたようです(参考ページやらなにやらを参照).
まとめ
- 3桁の2進数ぐらいはぱっと読み書きできるようになろう
- こっちを読んで→ [techaday:0006] 2進数は下から3桁ずつ読もう
参考
補足
- 第16回なのに16進数の話題が書けなくてごめんなさい