a=read_byte();//读取温度低八位的数据b=read_byte();//读取温度高八位的数据t=(b*256+a)*25;return(t>>2);很多人是这样写的,那后面的转换过程到底是什么意思,为什么高八位数据要乘... a=read_byte(); //读取温度低八位的数据
b=read_byte(); //读取温度高八位的数据
t =(b*256+a)*25;
return(t>>2);
很多人是这样写的,那后面的转换过程到底是什么意思,为什么高八位数据要乘256,Z后乘25是什么意思,还有返回t>>2????不懂,而且不是说还要判断正负吗,为什么也没有??
用手机打字难,我就间单的说说.因为ds发出来的数据是bcd编码的.要转成正常的二进制!所以有了那个乘以二五六的公式,有时候我们不需要负温度所以用移位的方式省略掉了.其实也不一定要用别人的方法.你自己设计自己的算法才是真!