在使用Pyserial與STM32進行通訊時,遇到了需要將十六進制整數以Ascii碼編碼的字符串進行發送并且將接收到的Ascii碼編碼的字符串轉換成十六進制整型的問題。查閱網上的資料后,均沒有符合要求的,遂結合各家之長,用了以下方法。
環境
Python2.7 + Binascii模塊
十六進制整數轉ASCii編碼字符串
# -*- coding: utf-8 -*-import binascii#16進制整數轉ASCii編碼字符串a = 0x665554b = hex(a) #轉換成相同的字符串即'0x665554'b = b[2:] #截取掉'0x'c = binascii.a2b_hex(b) #轉換成ASCii編碼的字符串print("a:%x, b:%s,c:%s" %(a,b,c))print type(a)print type(b)print type(c)
測試結果:
a:665554, b:665554,c:fUT<type 'int'><type 'str'><type 'str'>
ASCii編碼字符串轉十六進制整數
# -*- coding: utf-8 -*-import binasciic = 'fUT'e = 0 #暫存結果for i in c: d = ord(i) #單個字符轉換成ASCii碼 e = e*256 + d #將單個字符轉換成的ASCii碼相連print("e:%x" %e)print type(e)
測試結果:
e:665554<type 'int'>
可以看到,以上兩段小程序順利實現了這個設計要求
以上這篇Python 十六進制整數與ASCii編碼字符串相互轉換方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答