Python で2進数・8進数・10進数・16進数の変換 🔢
Python で各進数を扱う方法と相互変換について解説します 🔢
各進数の表記方法
各進数で 18 を表す場合は以下のように記述します:
- 2進数:
0b10010📊 - 8進数:
0o22 - 10進数:
18 - 16進数:
0x12
>>> 0b10010
18
>>> 0o22
18
>>> 18
18
>>> 0x12
18
すべて同じ値(18)を表していることが確認できます ✅
関数を使った変換
各進数への変換には専用の関数が用意されています:
>>> bin(18) # format(18, 'b') も可能
'0b10010'
>>> oct(18) # format(18, 'o') も可能
'0o22'
>>> int(18)
18
>>> hex(18) # format(18, 'x') も可能
'0x12'
format 関数を使った変換
format 関数を使用することでも同様の変換が可能です:
>>> format(18, 'b') # 2進数
'10010'
>>> format(18, 'o') # 8進数
'22'
>>> format(18, 'd') # 10進数
'18'
>>> format(18, 'x') # 16進数
'12'
% 演算子を使った変換
古い形式の文字列フォーマットでも変換できます:
>>> '%o' % 18 # 8進数
'22'
>>> '%d' % 18 # 10進数
'18'
>>> '%x' % 18 # 16進数
'12'
注意:2進数(%b)はサポートされていません ⚠️
>>> '%b' % 18
ValueError: unsupported format character 'b' (0x62) at index 1
文字列から数値への変換
文字列形式の各進数を10進数に変換する場合:
>>> int('10010', 2) # 2進数から10進数
18
>>> int('22', 8) # 8進数から10進数
18
>>> int('18', 10) # 10進数から10進数
18
>>> int('12', 16) # 16進数から10進数
18
まとめ
Python では各進数を簡単に扱うことができます 🐍 プログラミングでビット演算や低レベルな処理を行う際に、これらの変換方法を覚えておくと便利です。