我試圖將一個數字(任意大小,可能很長)轉換爲相應的字節串。例如,輸入數字1094795585(基數爲10),即0x41414141(基數爲16),應返回「\ x41 \ x41 \ x41 \ x41」。bytearray.fromhex不會在沒有字母編號的情況下轉換
目前我有:
def number_to_bytes(number):
hex_string = hex(number).rstrip("L").lstrip("0x")
return bytearray.fromhex(hex_string.decode("hex"))
當我輸入的號碼1094795585(0x41414141),我得到的錯誤 「奇長字符串」。
當我輸入數字1094795584(0x41414140)時,出現錯誤「在位置2 fromhex()arg中找到的非十六進制數字」。
這讓我覺得Python在hex_string
中添加了某種隱形字符。是這樣嗎?
我該如何實現正確的轉換?
如果您需要零填充,它將無法正常工作在十六進制的位置0。例如number_to_bytes(5) – Amir
@Amir:啊,的確如此。糾正。 –