Pythonには整数を異なる進数に変換するための組み込み関数がいくつか存在します。その中でもbin()
、oct()
、hex()
関数は、それぞれ整数を2進数、8進数、16進数に変換する際に役立つツールです。この記事では、これらの関数に焦点を当て、コード例を交えながら詳細に解説します。
bin()関数: 整数を2進数に変換
bin()
関数は、与えられた整数を2進数の文字列に変換します。以下に基本的な使用例を示します。
# bin()の基本的な使用例 decimal_number = 42 binary_representation = bin(decimal_number) print(binary_representation)
この例では、整数42
をbin()
関数で2進数に変換し、結果を文字列として得ています。
oct()関数: 整数を8進数に変換
oct()
関数は、与えられた整数を8進数の文字列に変換します。以下に例を示します。
# oct()の基本的な使用例 decimal_number = 42 octal_representation = oct(decimal_number) print(octal_representation)
この例では、整数42
をoct()
関数で8進数に変換しています。
hex()関数: 整数を16進数に変換
hex()
関数は、与えられた整数を16進数の文字列に変換します。以下に例を示します。
# hex()の基本的な使用例 decimal_number = 42 hexadecimal_representation = hex(decimal_number) print(hexadecimal_representation)
この例では、整数42
をhex()
関数で16進数に変換しています。
使い方のポイント
接頭辞の取り扱い
2進数、8進数、16進数に変換する際、それぞれの接頭辞に注意が必要です。bin()
関数では2進数は接頭辞として'0b'
、oct()
関数では8進数は接頭辞として'0o'
、hex()
関数では16進数は接頭辞として'0x'
が付きます。これにより、変換された文字列がどの進数であるか識別できます。
# 接頭辞の例 decimal_number = 42 binary_representation = bin(decimal_number) octal_representation = oct(decimal_number) hexadecimal_representation = hex(decimal_number) print("Binary:", binary_representation) print("Octal:", octal_representation) print("Hexadecimal:", hexadecimal_representation)
進数から10進数への変換
int()
関数を使うことで、進数から10進数に変換することも可能です。この際、引数として変換元の文字列と基数(進数)を指定します。
# 進数から10進数への変換例 binary_number = '0b101010' octal_number = '0o52' hexadecimal_number = '0x2a' decimal_from_binary = int(binary_number, 2) decimal_from_octal = int(octal_number, 8) decimal_from_hexadecimal = int(hexadecimal_number, 16) print("Decimal from binary:", decimal_from_binary) print("Decimal from octal:", decimal_from_octal) print("Decimal from hexadecimal:", decimal_from_hexadecimal)
まとめ
bin()
、oct()
、hex()
関数は、整数をそれぞれ2進数、8進数、16進数に変換するための便利なツールです。これらを使うことで、異なる進数で整数を表現する際の手間を軽減できます。また、進数から10進数への変換にはint()
関数を活用することで、柔軟な操作が可能です。これらの関数を理解し、使いこなすことで、Pythonプログラミングにおいて数値データを効果的に操作できるようになります。