pythonでN進数を扱う時
pythonで10進数から別の進数に相互に変換する事ができる。
下記がpython上での2進数、8進数、10進数、16進数の表記
code:python
bin_num = 0b10
oct_num = 0o10
num=10
hex_num = 0x10
print(bin_num) # 2
print(oct_num) # 8
print(hex_num) # 16
ここで使用されている0b, 0o, 0xは大文字0B, 0O, 0Xでも可能
またこの状態でもint型であり、整数型なので四則計算も可能
code:python
result = 0b10 * 0o10 + 0x10
print(result)# 32
数値を別の進数の文字列に変換したい場合は以下の組み込み関数もしくは文字列メソッドを使用する
table:変換
組み込み関数 概要
bin() 2進数の文字列に変換
oct() 8進数の文字列に変換
hex() 16進数の文字列に変換
例
code:python
print bin(0) # 0b0
print bin(8) # 0b1000
print bin(15) # 0b111111
print oct(8)#0o10
print oct(16)#0o20
print hex(255)#0xff
他にも組み込み関数format()と文字列メソッドstr.format()を使用して変換する方法が存在するがここでは割愛する。
2進数、8進数、16進数表記の文字列を数値に変換するには組み込み関数int()を使用する
具体的にはint(文字列, 基数)でintに変更される(基数を省略した場合は10進数となる)
code:python
dec_num = int('10')#10
bin_num = int('10', 2)#2
oct_num = int('10', 8)#8
hex_num = int('10', 16)#16
より参照