【PHP】10進数と2進数の数値を互いに変換する関数「decbin()」、「bindec()」
今回はPHPに実装されている、10進数を2進数に変換する関数「decbin()」関数と、2進数を10進数に変換する「bindec()」関数をメモします。
私は最初、10進法と2進法という言葉すら知りませんでしたし、2進法を知ったはいいけど、「10進数の数値を2進数に変換しなさい」という問題にぶち当たった時にはもう何が何だか分かりませんでした(´;ω;`)
しかしまさかPHPの関数で一発変換できるなんて驚きです。もっと早く知りたかった…
そもそも2進数と10進数てどういうもの?
今回は簡単に書きます。より詳しい解説などはいつか調べたいと思います(いつかっていつだ(;^ω^)
10進数は私達が普段使っている数値表記とほぼ一緒です。ただし、0からスタートし、1,2,3・・・と増やしていくことができます。
一方、2進数は「0」と「1」の表記しかありません。これはコンピューターが理解するための表記方法であり、この10進数と2進数を変換しやり取りすることでコンピューターは様々な処理を行っています。
「0」,「1」までは2進数も同様にカウントできますが、2進数は10進数でいう「2」という数字がありません。
10進数で「2」にあたる数値は、「10」となります。次に10進数で「3」と表記されるものは2進数では「11」、10進数で「4」は2進数で「100」・・・
なんとなく規則性は分かるのではないでしょうか?
2進数は「0」と「1」のみの表記で大きくなっていく表記方法です。10進数でいう0~9までの表記とそれを2進数に直した表を記載しておきますね。
| 10進数 | 2進数 |
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
このように、10進数と2進数は表記こそ異なるものの、相互の関係をもっています。
今回はPHPの関数でこれらを一発変換していきましょう。
10進数を2進数に変換する「decbin()」関数
こちらの関数のほうがよく使用するかもしませんね。10進数を2進数に変換する関数です。
早速記述してみましょう。
|
1 2 3 4 5 6 7 8 9 |
<?php //decbin(2進数に直したい10進数); echo decbin(10)."\n"; echo decbin(50); //実行結果 1010 110010 ?> |
使い方は非常に簡単で、decbin( )のカッコ内に10進数の数値をいれるだけです。とっても簡単ですね(*’ω’*)
もし自分で「10進数を2進数に直すプログラムを作成せよ!」なんて問題を出されたらプログラム初心者は中々苦労しそうですが、この関数を使えば一発解決ですね!
2進数を10進数に変換する「bindec()」関数
今度は2進数も10進数に直す関数です。
|
1 2 3 4 5 6 7 8 9 |
<?php //bindec(10進数に直したい2進数); echo bindec(100)."\n"; echo bindec(101101); //実行結果 4 45 ?> |
これで2進数を10進数に直せと言われても怖くありませんね(*’ω’*)
まとめ
- 10進数から2進数に直す時は「decbin()」関数を使う
- 2進数から10進数に直す時は「bindec()」関数を使う