利用Python對二進位制資料進行按位處理

2021-08-18 03:08:41 字數 916 閱讀 9403

最近在用python做資料報解析,遇到一些要按位處理二進位制資料的問題。折騰了乙個早上,大概有一點思路,記下來備忘吧。

我要解決的問題是判斷乙個位元組的某幾位是否為特定的值,比如判斷乙個位元組的前四位是不是0110。

首先,建立乙個文件,裡面隨便寫點東西,儲存之後用可以檢視二進位制資料的軟體開啟,我用的是notepad++裡的hex-editor外掛程式。

可以看到字元『a』對應的二進位制資料是61(01100001)。下面對這個位元組的資料進行處理。

首先是開啟檔案,用read()函式讀進去乙個位元組,用16進製制進行編碼,編碼之後會變成乙個str型別,這時對它進行轉換,int()函式可以將乙個str轉換成int型別,int()函式的第二個引數代表了進製。mask為11110000,我用mask和要處理的位元組進行與,可以得到資料前四位的內容。在這裡,01100001的前四位是0110,與完的結果是01100000,即96。

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

二進位制資料

今天的問題是處理。本來想在資料庫中只存儲存路徑的,但是同組的同事說別那樣,還是直接存比較好,雖然不知道為什麼一定要存,但是或許他說的有道理吧,至於為什麼暫時還沒想通。處理二進位制遇到的第乙個問題是讀寫的問題,data open filepath,rb data open filepath,wb 作為...

python處理二進位制資料

處理二進位制資料離不開python的struct模組,struct理解上你可以把它理解為c語言的結構體,使用該模組的pack和unpack方法,可以很容易的把二進位制資料轉換為常用的型別資料,如整型 字元型等 結構體如下 struct header 將二進位制資料流解析為常用的資料型別,例如 pyt...