![](/img/trans.png)
[英]How to convert byte to hex string starting with '%' in python
[英]How to convert byte to hex?
我需要通過串行發送一些數據,但在發送之前,我需要使用模 256 計算校驗和。我可以計算出校驗和並將其顯示為十六進制值(在這種情況下校驗和為0xb3
)但它顯示它作為0xb3
但我需要它是\xb3
因為我在它之前發送其他消息。
我已經嘗試過編碼、字節和字節數組,但無法讓它發送十六進制值。 它將'0xb3'
作為字符串發送。
def calculate_csum(message):
message = b'\x60\x08\x46\x52\x41\x50\x5a\x45\x52\x31' #just temp
j = 0
for i in message:
j = j + i
csum = hex(j % 256)
csum = csum.encode("ascii")
print(csum)
full_string = message + csum
print (full_string)
return csum
完整字符串的 output 是b'\x08FRAPZER10xb3'
但如果我用b'\x60\x08\x46\x52\x41\x50\x5a\x45\x52\x31\xb3'
對其進行硬編碼,我會得到b'\x08FRAPZER1\xb3'
它可以工作,所以我需要刪除0xb3
並將其替換為\xb3
。
無需 go 通過旋轉將csum
轉換為字符串然后再轉換回字節字符串,您首先希望它作為單個字節。
csum = bytes([j % 256])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.