整数を2進数、8進数、16進数で表記
bin_num = 0b10 oct_num = 0o10 hex_num = 0x10 print(bin_num) #2 print(oct_num) #8 print(hex_num) #16
printで表示させるときには10進数表記にされる
これらは異なる基数で表しているが、整数型に変わりはないので四則演算はいつもどおりにすることが可能
print(0b10 * 0o10 + 0x10) #32 #すなわち(2*8+16)
10進数を2進数、8進数、16進数の文字列に変換
組み込み関数のbin(),oct(),hex()を使い、数値を2進数、8進数、16進数で表された文字列に変換することができる。
bin_str = bin(127) oct_str = oct(127) hex_str = hex(127) print(bin_str) #0b1111111 print(oct_str) #0o177 print(hex_str) #0x7f
2進数、8進数、16進数表記の文字列を任意の基数の数値に変換
組み込み関数int(文字列,基数)を使用する。基数を省略したときは10進数とみなされる。
bin_num = int('10',2) oct_num = int('10',8) dec_num = int('10') hex_num = int('10',16) print(bin_num) #2 print(oct_num) #8 print(dec_num) #10 print(hex_num) #16
基数に0を指定すると文字列のプレフィックス(0b,0o,0xなどのこと)をもとに自動でN進数なのか判断して変換される。
bin_num = int('0b10', 0) oct_num = int('0o10', 0) dec_num = int('10', 0) hex_num = int('0x10', 0) print(bin_num) #2 print(oct_num) #8 print(dec_num) #10 print(hex_num) #16
コメント