![]() |
負溫度的時候輸出的是補碼,需要轉換成原碼再計算溫度值,補碼轉換原碼的方法取反加一 和減一取反 效果是一樣的. 以補碼10010110為例,有兩種計算方法求原碼: 算法1: 補碼=原碼取反再加1的逆運算。 10010110是補碼,應先減去1變為反碼,得10010101; 由反碼取得源碼即除符號位外其他為按位取反,得11101010,即十進制數的-106。 算法2: 負數補碼速算法,由最低位(右)向高位(左)查找到第一個1與符號位之間的所有數字按位取反的逆運算 10010110是補碼,符號位與最后一個1之間的所有數字按位取反,得11101010 |
數字溫度傳感器DS18B20 測溫時序圖 http://www.zg4o1577.cn/bbs/dpj-200465-1.html |
網絡免費的資料統一了就怪了,本著實用試驗的心態來取罷。 如果想找沒問題的,付費即可。價越高可保證差誤越小而且你可以寫在合同里。 |
int型數據的-1就是0xffff,去符號的方法是先減1再取反或先取反再加1是等同的 0xffff-1=0xfffe,取反=0x0001 0xffff取反=0x0000再+1=0x0001 |