PR

python~2進数の扱い方~【pythonマスターへの道#008】

python-2進数変換

プログラミングで何かと使う2進数ですが、

もちろんpythonでも扱うことができます。

10進数から2進数に変換したり、逆に2進数を10進数に変換したりは

おちゃのこさいさいです。

それぞれ変換の方法などについて詳しく学んでいきましょう。

この記事を読むことでわかること

自己紹介

東証一部上場企業でサラリーマンしてます。

主に工場(生産現場)で使用する検査装置のアプリケーション開発してます。

ヒトの作業を自動化して簡略化するアプリケーションを日々開発中。

2022年5月に転職。現役バリバリの技術者です。
現在は超大手企業の新規事業分野で装置の研究・開発をしています。

Youtubeチャンネルにさまざまな動画を上げています

↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓

今までのPythonに関する記事はこちら

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が返ってきましたね。

まとめ

  • 2進数を表すときは0bが頭につく
  • 8進数を表すときは0oが頭につく
  • 16進数を表すときは0xが頭につく
  • 2進数に変換するときにbin()を使う
  • 8進数に変換するときにoct()を使う
  • 16進数に変換するときにhex()を使う

こんな感じで変換が可能です。

覚えておいたほうが後々役に立ちます。

0x~と書かれていても、「あ、16進数ね」と理解できます。



コメント

タイトルとURLをコピーしました