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進数で扱います。