Python入門、DIY、クッキング

小さなことをやってみるブログ

pythonでbin関数,oct関数,hex関数により、2進数,8進数,16進数に変換する(初心者のPython入門)

2019年7月4日

Pythonで2進数,8進数,16進数に変換するbin関数,oct関数,hex関数の使い方です。(Pythonの標準関数です。)

Pythonの標準関数一覧はこちらです。

2進数,8進数,10進数,16進数とは

コンピューターの内部は2進数で計算が行われますが、人間の普段の生活では10進数が使われています。

2進数は4桁ごとに区切ると16進数に簡単に変換できるため、通常は少ない桁で表現できる16進数でコンピュータの情報を扱います。

Pythonでは2進数、8進数、10進数、16進数を扱えますので、それぞれの値を相互に変換して使うことが出来ます。

プログラミングでは8進数はあまり使わないと思いますが、みなさんはどうでしょうか。

bin関数,oct関数,hex関数の使い方

bin(x) ・・・・・2進文字列に変換する

oct(x)・・・・・8進数文字列に変換する

hex(x)・・・・・16進数文字列に変換する

以下のとおり試してみます。

10進数の0~17の値を、2進数、8進数、16進数に変換して表示してみます。

# -*- coding: utf-8 -*-

print("10進数,2進数,8進数,16進数")
for i in range(0,17):
    print(i,",",bin(i),",",oct(i),",",hex(i))

実行結果は以下のようになりました。

10進数,2進数,8進数,16進数
0 , 0b0 , 0o0 , 0x0
1 , 0b1 , 0o1 , 0x1
2 , 0b10 , 0o2 , 0x2
3 , 0b11 , 0o3 , 0x3
4 , 0b100 , 0o4 , 0x4
5 , 0b101 , 0o5 , 0x5
6 , 0b110 , 0o6 , 0x6
7 , 0b111 , 0o7 , 0x7
8 , 0b1000 , 0o10 , 0x8
9 , 0b1001 , 0o11 , 0x9
10 , 0b1010 , 0o12 , 0xa
11 , 0b1011 , 0o13 , 0xb
12 , 0b1100 , 0o14 , 0xc
13 , 0b1101 , 0o15 , 0xd
14 , 0b1110 , 0o16 , 0xe
15 , 0b1111 , 0o17 , 0xf
16 , 0b10000 , 0o20 , 0x10

当然ですが、2進数は2の倍数で桁上がりします。

8進数は8の倍数で、10進数は10の倍数で16進数は16の倍数で桁上がりします。

2進数は、画像処理などでピクセルを表現する際にはON/OFFが見やすい状態で確認できます。

ただし、すごい勢いで桁上がりしていくため、通常は16進数で扱います。

  • B!