これは Python の数値を 16 進文字列に変換する最良の方法ですか?
number = 123456789
hex(number)[2:-1].decode('hex')
1234567890 を実行すると、機能せず、奇数長の文字列について不平を言うことがあります。
説明:
私はintからhexに行きます。
また、エスケープする必要があります。
IE: 1234567890 -> '\x49\x96\x02\xd2' は '499602D2' ではありません
また、任意の Python 整数を取得できる必要があります。すなわち。Int より大きいもの。
編集:
これは、Paolo と Devin の投稿からまとめた、これまでのところ最良の解決策です。
def hexify(num):
num = "%x" % num
if len(num) % 2:
num = '0'+num
return num.decode('hex')