プログラミングで何かと使う2進数ですが、
もちろんpythonでも扱うことができます。
10進数から2進数に変換したり、逆に2進数を10進数に変換したりは
おちゃのこさいさいです。
それぞれ変換の方法などについて詳しく学んでいきましょう。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
2進数のおさらい
2進数とは、0と1で表される数字のことです。
普段私たちが使っているのは10進数ですね。
そもそも2進数、10進数の違いはなんでしょうか?
違いは、「1桁で表現できる種類の数」です。
10進数の場合、0⇒1⇒2⇒…⇒9まで行ったら次は、10ですね。
つまり、0から数えて10個目まで同じ桁で表現できます。
同じように2進数を見ると、
0⇒1⇒10
ということで、1桁で表せるのは0か1で2つしかありません。
ですから2進数なんですね。
8進数と16進数も同じ考え方です。
10進数を2進数に変換する
それでは本題です。
10進数を2進数に変換してみましょう。
2進数にするには、bin()を使いましょう。
試しに120を2進数に変えてみます。
print(bin(120))
どうでしょうか。
0b1111000
こんな感じで出力されましたね。
頭についている0bは、2進数であることを表しています。
2進数を10進数に変換する
2進数を10進数にするには、
int()を使います。
先ほど2進数に変換したので、その変換後の値(0b1111000)を再度120に戻してみましょう。
print(int(0b1111000))
しっかり120が出力されましたね。
今回の記事では0bをあえて付けたまま10進数に戻しましたが、
0bを付けていない場合の変換については、以前少し触れているので
そちらで確認してみてください。
int(●●,2進数なら2)で変換できる方法を紹介しています。
2進数を8進数に変換する
2進数を8進数にしてみましょう。
2進数は先ほどの出力の通り、0bと頭に着ければ2進数ですから、
例えば、0b1010100を8進数に変換してみましょう。
使用するのはoct()です。
print(oct(0b1010100))
0o124が出力されましたね。
8進数はOctで表現されるため、頭に0o(ゼロオー)がついています。
ゼロゼロじゃないので注意です。
8進数を2進数に変換する
それでは逆に8進数を2進数に変換しましょう。
8進数の場合は、先ほどの出力結果のように、0oがつきます。
0o124を2進数に変換してみましょう。
bin()をつかいます。
print(bin(0o124))
ちゃんと0b1010100に戻りましたね。
2進数を16進数に変換する
16進数に変換するのも基本は同じです。
使う関数がhexになるだけです。
今回も0b1010100を使って変換しましょう。
print(hex(0b1010100))
0x54と出力されましたね。
16進数の場合は0xがつきます。
2進数⇒bin
8進数⇒oct
16進数⇒hex
なので当然0hだと思ったでしょうが、
0xです!注意しましょう。
16進数を2進数に変換する
最後に16進数を2進数に変換します。
8進数を2進数に変換したときと全く同じことをします。
print(bin(0x54))
ちゃんと0b1010100が返ってきましたね。
まとめ
こんな感じで変換が可能です。
覚えておいたほうが後々役に立ちます。
0x~と書かれていても、「あ、16進数ね」と理解できます。
コメント