Pythonで2進数,8進数,16進数に変換するbin関数,oct関数,hex関数の使い方です。(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進数で扱います。