■N進法→10進法変換
10進法をN進法へ変換する方法は以下の通りである
例:
①10進法の値、「46」を3進法へ変換 → 1201
②10進法の値、「45」を4進法へ変換 → 231
③10進法の値、「255」を16進法へ変換 → FF(※)
(※)なお、16進法の場合、10進法の10から15は以下のアルファべットで表記される。
■サンプルコード
今回は16進法までの変換を前提とする
# -*- coding: UTF-8 -*-
# 数字をアルファベットに変換する関数(16進法まで)
def Check_Num_To_A(num:int) -> str:
if num == 10:
return 'A'
elif num == 11:
return 'B'
elif num == 12:
return 'C'
elif num == 13:
return 'D'
elif num == 14:
return 'E'
elif num == 15:
return 'F'
else:
return str(num)
# 10進法をN進法に変換する関数
def Change10ToN(num:int, N:int) -> str:
# 初期値をセット
after_num = ''
cal_num = num
# 変換対象の値が0未満になるまでループ処理
while cal_num > 0:
# 余りを取得
tmp_cal = cal_num % N
# 取得した余りについて、
# 数字をアルファベットに変換(16進法まで)
tmp_num = Check_Num_To_A(tmp_cal)
# 変換した値を文字列で連結
after_num = tmp_num + after_num
# 変換対象の値について、商のみを取得
cal_num = cal_num // N
return after_num
# メイン処理
if __name__ == '__main__':
int_num = 46
N = 3
print(Change10ToN(int_num, N))
int_num = 45
N = 4
print(Change10ToN(int_num, N))
int_num = 255
N = 16
print(Change10ToN(int_num, N))
■実行結果
1201
231
FF
コメント