Python 十六進制整數(shù)與ASCii編碼字符串相互轉(zhuǎn)換方法
在使用Pyserial與STM32進行通訊時,遇到了需要將十六進制整數(shù)以Ascii碼編碼的字符串進行發(fā)送并且將接收到的Ascii碼編碼的字符串轉(zhuǎn)換成十六進制整型的問題。查閱網(wǎng)上的資料后,均沒有符合要求的,遂結(jié)合各家之長,用了以下方法。
環(huán)境
Python2.7 + Binascii模塊
十六進制整數(shù)轉(zhuǎn)ASCii編碼字符串
# -*- coding: utf-8 -*-
import binascii
#16進制整數(shù)轉(zhuǎn)ASCii編碼字符串
a = 0x665554
b = hex(a) #轉(zhuǎn)換成相同的字符串即'0x665554'
b = b[2:] #截取掉'0x'
c = binascii.a2b_hex(b) #轉(zhuǎn)換成ASCii編碼的字符串
print("a:%x, b:%s,c:%s" %(a,b,c))
print type(a)
print type(b)
print type(c)
測試結(jié)果:
a:665554, b:665554,c:fUT <type 'int'> <type 'str'> <type 'str'>
ASCii編碼字符串轉(zhuǎn)十六進制整數(shù)
# -*- coding: utf-8 -*-
import binascii
c = 'fUT'
e = 0 #暫存結(jié)果
for i in c:
d = ord(i) #單個字符轉(zhuǎn)換成ASCii碼
e = e*256 + d #將單個字符轉(zhuǎn)換成的ASCii碼相連
print("e:%x" %e)
print type(e)
測試結(jié)果:
e:665554 <type 'int'>
可以看到,以上兩段小程序順利實現(xiàn)了這個設計要求
以上這篇Python 十六進制整數(shù)與ASCii編碼字符串相互轉(zhuǎn)換方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
如何用python實現(xiàn)結(jié)構體數(shù)組
這篇文章主要介紹了如何用python實現(xiàn)結(jié)構體數(shù)組,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
python -m pip install 和 pip in
python -m pip install <package> 使用了 -m 參數(shù)來確保以 Python 模塊的形式運行 pip,適用于確保在不同的環(huán)境中正確使用 pip,這篇文章主要介紹了python -m pip install 和 pip install 的區(qū)別,需要的朋友可以參考下2023-07-07
Python 內(nèi)置函數(shù)complex詳解
這篇文章主要介紹了Python 內(nèi)置函數(shù)complex詳解的相關資料,需要的朋友可以參考下2016-10-10

