需求是這樣的:
我用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()
測試輸出圖: