18b20负温度计算问题

2019-07-21 02:17发布

18b20负温度怎么计算的,不是要取反加1吗?怎么没加?
if(TH>7)
    {
        TH=~TH;
        TL=~TL;
        temp=0;//温度为负  
    }else temp=1;//温度为正                    
    tem=TH; //获得高八位
    tem<<=8;   
    tem+=TL;//获得底八位
    tem=(float)tem*0.625;//转换     
        if(temp)return tem; //返回温度值
        else return -tem;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 02:27
不需要加1
thunder520
2楼-- · 2019-07-21 05:17
正点原子 发表于 2016-12-23 22:38
不需要加1

但是不加以的话数据对不上啊,比如资料中-0.5的值是1111 1111 1111 1000,取反就是0000 0000 0000 0111,低四位是小数部分,0111也不是0.5啊
arels
3楼-- · 2019-07-21 09:40
正点原子 发表于 2016-12-23 22:38
不需要加1

原子哥  你们这段代码到零下25度可以实现吗
菠萝僧接地气
4楼-- · 2019-07-21 11:57
 精彩回答 2  元偷偷看……

一周热门 更多>