16进制取反怎么算。顺便举点例子.就是18b20负温度的转化
展开全部
就是取反再加一,就这么简单。
tt[0]=ReadOneChar(); //读取温度值低位
tt[1]=ReadOneChar(); //读取温度值高位
flag=tt[1]&0x80;//最高为1 就是零下,参看数据手册。
//温度小数部分
if(flag)
{
temp=tt[1];
temp<<=8;
temp=temp|tt[0];
temp=~temp+1;
tp=temp*0.0625;//tp为float 型
temp = tp*10+0.5;
return(temp);//temp 就是零下度数,根据flag 标识符自己在液晶屏前面加个 - 号
}
tt[0]=ReadOneChar(); //读取温度值低位
tt[1]=ReadOneChar(); //读取温度值高位
flag=tt[1]&0x80;//最高为1 就是零下,参看数据手册。
//温度小数部分
if(flag)
{
temp=tt[1];
temp<<=8;
temp=temp|tt[0];
temp=~temp+1;
tp=temp*0.0625;//tp为float 型
temp = tp*10+0.5;
return(temp);//temp 就是零下度数,根据flag 标识符自己在液晶屏前面加个 - 号
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询