数値をn進数に変換するPythonプログラム

Pythonで数値をn進数に変換するプログラムを作成する方法について説明します。以下のコードでは、10進数からn進数に変換する関数を実装しています。また、2進数、8進数、16進数への変換の例も示します。

コード

def decimal_to_n(decimal_number, n):
    """
    decimal_numberをn進数に変換する関数
    """
    if decimal_number == 0:
        return '0'
    if n < 2 or n > 16:
        return 'nは2から16の範囲で指定してください'
    digits = '0123456789ABCDEF'
    result = ''
    while decimal_number > 0:
        digit = decimal_number % n
        result = digits[digit] + result
        decimal_number //= n
    return result

# 10進数から2進数に変換する例
decimal_number = 12
binary_number = decimal_to_n(decimal_number, 2)
print(f'{decimal_number}の2進数は{binary_number}です。')

# 10進数から8進数に変換する例
decimal_number = 120
octal_number = decimal_to_n(decimal_number, 8)
print(f'{decimal_number}の8進数は{octal_number}です。')

# 10進数から16進数に変換する例
decimal_number = 255
hex_number = decimal_to_n(decimal_number, 16)
print(f'{decimal_number}の16進数は{hex_number}です。')

このプログラムを実行すると、以下のような結果が得られます。

12の2進数は1100です。
120の8進数は170です。
255の16進数はFFです。

コードの解説

このプログラムでは、引数として与えられたdecimal_numberをn進数に変換する関数decimal_to_nを定義しています。以下に、この関数の具体的な実装方法を説明します。

  1. 引数decimal_numberが0である場合は、0を返します。
  2. 引数nが2未満または16を超える場合は、エラーメッセージを返します。
  3. 変換する数字の桁を表す文字列digitsを定義します。2進数から16進数までの場合、桁は0から9までの数字とAからFまでの文字です。
  4. 変換後の数を格納する変数resultを定義します。
  5. 引数decimal_numberをnで割った余りを求め、変数digitに代入します。
  6. digits文字列の中から、インデックスがdigitの文字を取得し、変数resultの先頭に追加します。
  7. decimal_numberをnで割り、整数除算の結果を代入します。
  8. decimal_numberが0になるまで5から7の処理を繰り返します。
  9. 最終的に変換された数を返します。

このプログラムでは、引数として与えられた数値をn進数に変換する関数を実装しました。また、特定の進数(2進数、8進数、16進数)に変換する例も示しました。このプログラムはPythonの基本的な文法で実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com