从DS18B20读取的温度数据,共有11bit:BIT10~BIT0。
每一位,都代表一种十进制数:
BIT0为1,就代表:0.0625;
BIT1为1,就代表:0.125;
BIT2为1,就代表:0.25;
……
为0就是代表0。
本程序,就是分别判断 BIT0、BIT1、...BIT10,
如果为1则然后在十进制数中,分别加上625、125、25...。
如下就是判断 BIT0 的:
if(temper & BIT0)
{
dN[0] = 5;
dN[1] = 2;
dN[2] = 6;
}
如下就是判断 BIT1 的:
if(temper&BIT1)
{
dN[1] += 5;
dN[2] += 2;
dN[3] += 1;
}
……
说实话,还从来没有见过有谁,竟能编写出来这么笨的程序。
这算法还真是一点也没明白,求解释。