web-dev-qa-db-ja.com

16進文字列を16進数に変換する方法

16進数の文字列(例:0xAD4)を16進数に変換してから、その番号に0x200を追加し、再びその番号を0xの形式で文字列として印刷したい。

私は最初のステップを試しました:

str(int(str(item[1][:-2]),16))

しかし、印刷される値は、16進形式の文字列ではなく10進文字列です(0x形式)(最終結果を0xの形式で印刷したい)

  • [:-2]は、その番号から最後の00を削除します
  • item[1]には0xの形式の16進数が含まれています
36
RATHI

これを試して:

hex_str = "0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int)

最初の0xが気に入らない場合は、最後の行を

print hex(new_int)[2:]
74
Bach

int 関数を2番目のパラメーター16とともに使用して、16進文字列を整数に変換します。最後に、 hex 関数を使用して、16進数に戻します。

print hex(int("0xAD4", 16) + int("0x200", 16)) # 0xcd4

代わりに、直接行うことができます

print hex(int("0xAD4", 16) + 0x200) # 0xcd4
13
thefourtheye