二进制python_利用Python对二进制数据进行按位处理
生活随笔
收集整理的這篇文章主要介紹了
二进制python_利用Python对二进制数据进行按位处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
標簽:
最近在用Python做數據包解析,遇到一些要按位處理二進制數據的問題。折騰了一個早上,大概有一點思路,記下來備忘吧。
我要解決的問題是判斷一個字節的某幾位是否為特定的值,比如判斷一個字節的前四位是不是0110。
首先,創建一個文檔,里面隨便寫點東西,保存之后用可以查看二進制數據的軟件打開,我用的是notepad++里的HEX-Editor插件。
可以看到字符‘a’對應的二進制數據是61(01100001)。下面對這個字節的數據進行處理。
首先是打開文件,用read()函數讀進去一個字節,用16進制進行編碼,編碼之后會變成一個str類型,這時對它進行轉換,int()函數可以將一個str轉換成int類型,int()函數的第二個參數代表了進制。mask為11110000,我用mask和要處理的字節進行與,可以得到數據前四位的內容。在這里,01100001的前四位是0110,與完的結果是01100000,即96。
f=open('1.txt','rb')
data=int(f.read(1).encode('hex'),16)
print data
print bin(data)
mask=0b11110000
print mask
res=data&mask
print res
標簽:
總結
以上是生活随笔為你收集整理的二进制python_利用Python对二进制数据进行按位处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python初级语法_python语法基
- 下一篇: python程序中怎样数个数_pytho