回答:
chr
機能を探しています。
あなたは整数の10進表現と整数の16進表現を混合しているように見えるので、何が必要かは完全には明確ではありません。あなたが与えた説明に基づいて、私はこれらのスニペットの1つがあなたが望むものを示していると思います。
>>> chr(0x65) == '\x65'
True
>>> hex(65)
'0x41'
>>> chr(65) == '\x41'
True
これは、16進数として整数を含む文字列とはかなり異なることに注意してください。それが必要な場合は、hex
組み込みを使用します。
chr
は、ASCIIをまったく含みません。これは、単に数値を取り、バイトの序数値が数値である1バイトのバイト文字列を作成します。バイト文字列を書き込んで表示するときに、ASCIIおよびASCII互換のエンコーディングが機能します。
'A'
を書いて表示する別の方法を作ることによってやって来ます'\x41'
。すべてがstr
本当に気にこれは六十から五であるという事実です。人間が物事を理解できると利用できるようにするには、それはしばしばA.なり
repr(chr(255)) # '\xff'
これも達成
試してください:
"0x%x" % 255 # => 0xff
または
"0x%X" % 255 # => 0xFF
Pythonのドキュメントでは、「これを枕の下に置いてください:http : //docs.python.org/library/index.html」
1桁の表現が必要な場合があるため、これを追加します。
'{:x}'.format(15)
> f
そして今f''
あなたができる新しいフォーマット文字列で:
f'{15:x}'
> f
注:の最初の「f」
f'{15:x}'
はフォーマット文字列を示します
大きな値でhex()
も引き続き機能することに注意してください(他のいくつかの回答では機能しません)。
x = hex(349593196107334030177678842158399357)
print(x)
Python 2:0x4354467b746f6f5f736d616c6c3f7dL
Python 3:0x4354467b746f6f5f736d616c6c3f7d
復号化されたRSAメッセージの場合、次のことを実行できます。
import binascii
hexadecimals = hex(349593196107334030177678842158399357)
print(binascii.unhexlify(hexadecimals[2:-1])) # python 2
print(binascii.unhexlify(hexadecimals[2:])) # python 3
ランダムな整数を、先頭に#が付いた6桁の16進文字列に変換したかったのです。これを得るために私は使用しました
"#%6x" % random.randint(0xFFFFFF)
"#%6x" % random.randint(0x0, 0xFFFFFF)
。(そこ欠落している%
前6
とrandint
2つのパラメータ-低級および上部bounds-かかります)
を使用するとformat()
、format-examplesに従って、次のことができます。
>>> # format also supports binary numbers
>>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)
'int: 42; hex: 2a; oct: 52; bin: 101010'
>>> # with 0x, 0o, or 0b as prefix:
>>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42)
'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'
(int_variable).to_bytes(bytes_length, byteorder='big'|'little').hex()
例えば:
>>> (434).to_bytes(4, byteorder='big').hex()
'000001b2'
>>> (434).to_bytes(4, byteorder='little').hex()
'b2010000'