🔍
𝕏📘📖☁️

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 では各進数を簡単に扱うことができます 🐍 プログラミングでビット演算や低レベルな処理を行う際に、これらの変換方法を覚えておくと便利です。

参考文献

関連記事