python補碼轉源碼


需求是這樣的:
我用python從傳感器一個字節一個字節的讀取數據,傳感器內部使用兩個字節來表示一個數據單元(使用的補碼表示整數),所以我需要用python將兩個字節重新拼接起來讓后將補碼裝換成python的源碼(python使用原碼表示整數):

import matplotlib.pyplot as plt
import matplotlib as mp
def byte16ToInt(byte16):
    if((byte16&0x8000)==0):
        r= byte16
    else:
        byte16=byte16^0xffff
        byte16=byte16+1
        r= -byte16
    return r
r=0x0001
x=[]
y=[]

#test
for i in range(0,65535):
    x.append(i);
    y.append(byte16ToInt(r))
    r+=1
    
mp.rcParams['font.family']='STFangsong'#修改了全局變量
plt.plot(x,y)
plt.xlabel("補碼")
plt.ylabel("原碼")
plt.title("python補碼轉原碼")
figure.show()

測試輸出圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM