バイナリ文字列を受け取り、16進数に変換する関数を作成しようとしています。これまでは、intを16進数に変換できる関数しか作成できませんでした。ここでバイナリを16進数に変換する
は私が持っているものです。
def intToHex(num):
num = abs(num)
symdict={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}
rlist=[]
while(num!=0):
rlist.append(num%16)
num//=16
rlist=rlist[::-1]
for idx, val in enumerate(rlist):
rlist[idx] = symdict.get(val, str(val))
print(''.join(rlist))
intToHex(4512)
サンプル出力:11A0
はどのように16進数に変換し、バイナリ組み込みコマンドを使用せずに、機能を作ることができます。その目的のために上記の関数を変更することは可能ですか?
基本的には、ベースnの数値を数値ベースmに変換する方法です。あなたの答えでは、ベース10からベース16に移動しました。ベース2からベース16に変更する必要があります。本質的に、ロジックの半分が完成しました:) – aydow