亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

瀏覽:109日期:2022-06-24 09:28:01

問題描述

最近做一個項目,是用Python進行相關(guān)的串口操作。及將相關(guān)指令通過串口發(fā)給設備,設備根據(jù)發(fā)過來的指令來做出相應的操作,所用的庫是Pyserial。在最初開發(fā)時,出現(xiàn)的問題在于:別人給的文檔里面的命令是十六進制的。例如,給出一個指令:

5aa5 07 82 1000 3132 3334 。 那么,我們需要思考的是,我們?nèi)绾螌⑸厦娴闹噶睿D(zhuǎn)換為pyserial庫進行寫操作時(write)所需要的bytes類型。

解決方法

首先,我們需要知道的是,我們首先,需要用字符串構(gòu)造成上面的指令,然后我們將它轉(zhuǎn)換成bytes。我們可以使用encode()函數(shù)將字符串轉(zhuǎn)為bytes格式:

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

然后我們就可以使用write對串口進行發(fā)數(shù)據(jù)了:

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

這里需要說明的是,我們發(fā)送的是字符串的1234,串口那邊就根據(jù)ascii進行解析。所以就變成了 31 32 33 34。

接下來,再來更換一個場景,我們構(gòu)造好了一個十六進制的bytes,需要將它還原成字符串:

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

解析串口發(fā)過來的數(shù)據(jù),首先我們查看從串口發(fā)過來的數(shù)據(jù)格式:

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

可以看到,我們發(fā)送的指令,和收到的指令,看起來不一致,那么我們也就無法進行調(diào)試,也就無法查看發(fā)過來的指令是否有錯誤,所以,我們需要對接收到的指令進行轉(zhuǎn)換。

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

可以看到,我們通過binascii中的函數(shù),對發(fā)送過來的數(shù)據(jù)進行轉(zhuǎn)換,轉(zhuǎn)換成了我們能夠看看懂的命令字符串。

接下來,我們?nèi)绾螌⑹盏降拿睿D(zhuǎn)換為文字?例如,我們收到了一串bytes,如果將它轉(zhuǎn)換為明文?

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

如上圖,我們將收到的bytes已經(jīng)轉(zhuǎn)換成了字符串格式,然后將里面的31 32 33 34提取出來,然后,我們將它們放入一個數(shù)組,經(jīng)過上面的運算以后,我們就得到了明文數(shù)據(jù)。

如何將十六進制轉(zhuǎn)換為字節(jié)流?

Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)

上述兩個方法均可。

總結(jié)

由于對上述的知識點不是特別熟悉,所以表述可能有一定的混亂。當初想實現(xiàn)上述幾點功能時也費了很大的勁,所以才寫在這里供以后后續(xù)使用。后來者進行學習時,無需仔細看文字,只需要看圖片,了解前后數(shù)據(jù)類型的轉(zhuǎn)化成什么樣,是否符合自己的需求即可。

補充知識:python中字符之間的轉(zhuǎn)換函數(shù)

int(x [,base ]) 將x轉(zhuǎn)換為一個整數(shù)

long(x [,base ]) 將x轉(zhuǎn)換為一個長整數(shù)

base默認參數(shù)值為10,也就是說把字符串’x’視為十進制數(shù)轉(zhuǎn)換成十進制數(shù)

print int(’12345’,8) # 5349

float(x ) 將x轉(zhuǎn)換到一個浮點數(shù) complex(real [,imag ]) 創(chuàng)建一個復數(shù) str(x ) 將對象 x 轉(zhuǎn)換為字符串 repr(x ) 將對象 x 轉(zhuǎn)換為表達式字符串 eval(str ) 用來計算在字符串中的有效Python表達式,并返回一個對象 tuple(s ) 將序列 s 轉(zhuǎn)換為一個元組 list(s ) 將序列 s 轉(zhuǎn)換為一個列表 chr(x ) 將一個整數(shù)轉(zhuǎn)換為一個字符 unichr(x ) 將一個整數(shù)轉(zhuǎn)換為Unicode字符 ord(x ) 將一個字符轉(zhuǎn)換為它的整數(shù)值 hex(x ) 將一個整數(shù)轉(zhuǎn)換為一個十六進制字符串 oct(x ) 將一個整數(shù)轉(zhuǎn)換為一個八進制字符串

以上這篇Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中文字幕精品视频 | chinese国产在线视频 | 亚洲精品香蕉一区二区在线观看 | a级毛片免费观看网站 | 免费黄色在线视频观看 | 午夜毛片不卡高清免费 | 乱淫的女高中h | 欧美成人精品手机在线观看 | 亚洲欧美日韩国产专区一区 | 视频一区 国产 | 久久久免费视频播放 | 欧美一级高清黄图片 | 99re热视频这里只有精品5 | 黄色大片黄色大片 | asian极品呦女爱爱 | 国产成年人网站 | 性满足久久久久久久久 | 国内成人精品视频 | 免费一级毛片无毒不卡 | 91视频高清 | 亚洲精品456人成在线 | 国产高清一级片 | 伊人久久综合成人亚洲 | 无遮挡啪啪成人免费网站 | 亚洲欧美综合国产精品一区 | 久久精品综合国产二区 | 欧美va在线高清 | pans全部视频在线观看 | 日韩精品福利在线 | 全部费免一级毛片不收费 | 成人国产精品免费视频不卡 | 1769国内精品视频在线观看 | 国产护士恋夜各种姿势视频 | 小明看看看 | 九九久久久2 | 成人网址在线观看 | 三级毛片免费看 | 日韩亚洲影院 | 亚洲精品国产第一区二区多人 | 国产精品久久久久久五月尺 | 久草久爱 |