a=read_byte(); //读取温度低八位的数据
b=read_byte(); //读取温度高八位的数据
t =(b*256+a)*25;
return(t>>2)
*25/4=6.25,DS18B20的分辨率是0.0625度,这里是保留了两位小数位,所以0.0625*100=6.25。详细解释一下:t>>2是右移的意思,就是把你的二进制数右移2位。通俗点讲,如果你把十进制数1234右移2位成了12.34变为原来的1/100倍,那把二进制数右移2位就是变为原来的1/4倍,所以25和t>>2是调整精度是25/4倍。
如下图所述
读取出来的是十六进制,转成10进制,百度一下十六进制转10进制!