Python 3で整数を任意の基数の文字列に変換する方法
Pythonは、整数を任意の基数で表現するための便利な機能を提供しています。この記事では、Python 3を使用して整数を異なる基数の文字列に変換する方法を詳しく説明します。基数変換は、特にコンピュータサイエンスやデータ処理の分野でよく使用されます。
基本的な基数変換の方法
Pythonで整数を異なる基数に変換するための最も基本的な方法は、組み込み関数を使用することです。ここでは、`bin()`、`oct()`、および`hex()`関数を使用して、整数をそれぞれ2進数、8進数、16進数に変換する方法を示します。
# 2進数への変換 num = 255 binary = bin(num) print(binary) # 出力: 0b11111111 # 8進数への変換 octal = oct(num) print(octal) # 出力: 0o377 # 16進数への変換 hexadecimal = hex(num) print(hexadecimal) # 出力: 0xff
任意の基数への変換
より一般的な基数変換を行うためには、カスタム関数を作成する必要があります。この関数は、整数と目的の基数を受け取り、その基数で表現された文字列を返します。以下はその例です。
def int_to_base(n, base): if n < 0: return '-' + int_to_base(-n, base) elif n == 0: return '0' digits = [] while n: digits.append(int(n % base)) n //= base return ''.join(str(x) for x in digits[::-1]) # 使用例 num = 255 base5 = int_to_base(num, 5) print(base5) # 出力: 2010
基数変換の応用例
基数変換は、データ圧縮や暗号化、さらにはプログラミングコンテストなどの多くの場面で役立ちます。ここでは、36進数(0-9とa-zを使用)への変換を行う例を示します。
import string def int_to_base36(n): if n < 0: return '-' + int_to_base36(-n) elif n == 0: return '0' chars = string.digits + string.ascii_lowercase digits = [] while n: digits.append(chars[n % 36]) n //= 36 return ''.join(digits[::-1]) # 使用例 num = 123456789 base36 = int_to_base36(num) print(base36) # 出力: 21i3v9
これらの例を通じて、Pythonで整数を任意の基数に変換する方法を理解することができました。基数変換は、データの視覚化や特殊な計算を行う際に非常に有用です。Pythonの柔軟性を活かして、さまざまな基数変換を試してみてください。
Python 3では、整数を任意の基数の文字列に変換するために、組み込み関数 `int()` と `str()` を使用します。`int()` 関数を使用して整数を指定した基数に変換し、`str()` 関数を使用してその結果を文字列に変換します。
例えば、10進数の整数を16進数の文字列に変換する場合、以下のようにします。
```python
num = 42
base = 16
result = str(int(num, base))
print(result) # 結果は '2a' となります
```このように、Python 3を使用すると、整数を任意の基数の文字列に簡単に変換することができます。