さくらのレンタルサーバ15周年!ロゴデザインコンテスト
さくらのレンタルサーバ15周年!ロゴデザインコンテスト
2019.10.06

異世界転生に備えて十進法と二進法の変換方法を勉強する

TK

はじめに

普段、私たちは十進法で数を表現していますが、もしも異世界転生した世界で二進法が一般的だったとしたら、私たちはろくに買い物すらできないのではないでしょうか。

もしかしたら、明日そんな世界に転生してしまうかもしれない……そう考えると私は夜も眠れなくなってしまいました。

異世界転生にすこしでも備えておくためにも、十進法と二進法について勉強しておきましょう。

十進法と二進法

どうして、十進法や二進法など複数の記数法が存在するのでしょうか。

これは日本語や英語のように文化の違いによって複数の記数法が考案され、のちに用途に合わせ特徴のマッチした記数法が主流になったためと考えられます。

まずは、十進法と二進法について調べてみましょう。

十進法

数の記数法の一。基数を10とし、0から9まで10個の数字を使い、10倍ごとに上の位に上げていく表し方。日常生活で最も使われている。(引用:十進法(じっしんほう)とは – コトバンク

十進数は人間が普段よく利用する記数法(数の表現方法)です。

当たり前のように使っていて、あらためて難しく考えると逆に混乱してしまいますので、ここでは普段数を数えたりしているのは十進記数法って名前なんだ、というところで留めておきます。

二進法

2倍ごとに桁(けた)を一つ増やす記数法。基数を2とし、すべての数を0と1との組み合わせで表す。()引用:二進法(にしんほう)とは – コトバンク

二進法はコンピュータの内部などでよく使われる記数法です。

二進法は2種類の数字のみで数を表現するため、 0 を OFF に 1 を ON に置き換えて電気信号で表すことができるので、電気を使用する機械等でよく使われているようです。

変換してみる

進数の変換つまりは基数の変換は、言語の変換とは違い、計算によって相互に変換することが可能です。

しかし、歳のせいですかね、文字で変換方法を読んでもなかなか理解ができません……。

そこで、

変換ロジックを関数化

して変換の流れを可視化してみることにしました。

多くのプログラミング言語には、あらかじめ組み込み関数として変換する関数が準備されているので、自前で書く必要はありません。ただ変換の流れをつかむには、自分で書いてみるのが近道だと思います。

二進数から十進数

それぞれの桁の数字と基数(二進数の場合は2)を桁数マイナス1の累乗した数を乗算し、すべての桁の積を加算する。

See the Pen
baseNumberConvert
.

十進数から二進数

商が0になるまで商を基数で除算し続け、各商の結果が割り切れていれば0を、割り切れなければ1を当てはめていく。

See the Pen
dec2bin
.

おわりに

これで、もしも二進法が一般的な世界に迷い込んだとしても、数字による障害を乗り越えることができるようになりましたね。

あなたの異世界転生ライフへの不安がすこしでも軽減されていれば幸いです。