[英]Convert string into hex to send for serial communication
我有一個數字為5:240
的字符串。 因此,我必須通過十六進制表示形式發送字符串中的數字。 該數字必須在兩個字節的范圍內。 但是,我想在我的串行端口上發送確切的表示形式,例如'\\x00\\x05\\x00\\xf0'
。 有人可以幫我嗎?
我嘗試了以下代碼片段,但沒有成功:
b='5:240'
b = b.split(':')
for i in range(len(b)):
print hex(int(b[i]))
print len(hex(int(b[i])))
結果:
0x5
3
0xf0
4
輸出顯示十六進制轉換,但是由於長度變化,我無法在串行端口上發送它。 誰能解決這個問題?
您可以使用十六進制格式說明符x
:
def word_hex(w):
a = int(w / 256)
b = w % 256
return "{0:#0{1}x}{2:#0{3}x}".format(a,4,b,4).replace("0x", "\\x")
b='5:240'
b = b.split(':')
for i in b:
print(word_hex(int(i)))
版畫
\x00\x05
\x00\xf0
答:參考塞爾丘克的答案。 我得到以下解決方案。
def word_hex(w):
a = int(w / 256)
b = w % 256
return "{0:#0{1}x}{2:#0{3}x}".format(a,4,b,4).replace("0x", "")
b='5:240'
b = b.split(':')
for i in b:
print(word_hex(int(i)).decode("hex"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.