Pythonでは、整数をバイナリ表現に変換する効率的な方法がいくつか提供されています。このガイドでは、組み込み関数からビット操作まで、さまざまな方法をスキルレベルとユースケースに合わせて探ります。
目次
bin()
関数の使用
最も簡単なアプローチは、Pythonの組み込み関数bin()
を利用することです。これは整数を受け取り、”0b”をプレフィックスとして付けたバイナリ表現を文字列として返します。
decimal_number = 10
binary_number = bin(decimal_number)
print(f"Binary: {binary_number}") # 出力: Binary: 0b1010
# "0b"プレフィックスの削除:
binary_number_no_prefix = binary_number[2:]
print(f"Binary (no prefix): {binary_number_no_prefix}") # 出力: Binary (no prefix): 1010
format()
メソッドの使用
format()
メソッドは簡潔な代替手段を提供します。
decimal_number = 10
binary_number = format(decimal_number, 'b')
print(f"Binary: {binary_number}") # 出力: Binary: 1010
これは”0b”プレフィックスなしでバイナリ文字列を直接生成します。
f文字列の使用
Python 3.6で導入されたf文字列は、非常に読みやすく近代的なソリューションを提供します。
decimal_number = 10
binary_number = f"{decimal_number:b}"
print(f"Binary: {binary_number}") # 出力: Binary: 1010
ビット操作による方法
より深い理解のために、ビット演算子を使用した手動変換は有益です。大きな数には効率が悪くなりますが、基礎となるプロセスを明らかにします。
def decimal_to_binary(n):
if n == 0:
return "0"
binary = ""
while n > 0:
remainder = n % 2
binary = str(remainder) + binary
n //= 2
return binary
decimal_number = 10
binary_number = decimal_to_binary(decimal_number)
print(f"Binary: {binary_number}") # 出力: Binary: 1010
この関数は2で繰り返し除算し、商が0になるまで剰余を結果の先頭に付け加えます。このアプローチは、教育目的またはきめ細かい制御が必要な状況に最適です。
ほとんどのアプリケーションでは、効率性と可読性の点から、bin()
関数またはf文字列が推奨されます。ビット操作による方法は、変換プロセスの貴重な洞察を提供します。