负温度的时候输出的是补码,需要转换成原码再计算温度值,补码转换原码的方法取反加一 和减一取反 效果是一样的.
以补码10010110为例,有两种计算方法求原码:
算法1:
补码=原码取反再加1的逆运算。
10010110是补码,应先减去1变为反码,得10010101;
由反码取得源码即除符号位外其他为按位取反,得11101010,即十进制数的-106。
算法2:
负数补码速算法,由最低位(右)向高位(左)查找到第一个1与符号位之间的所有数字按位取反的逆运算
10010110是补码,符号位与最后一个1之间的所有数字按位取反,得11101010 |