keil c51中temp=temp|a;这句语句是什么意思啊?“|”是什么作用
uintget_temperature(){floatwendu;uchara,b;ds_reset();delay(1);ds_write_byte(0xcc);ds_...
uint get_temperature()
{
float wendu;
uchar a,b;
ds_reset();
delay(1);
ds_write_byte(0xcc);
ds_write_byte(0xbe);
a=ds_read_byte();
b=ds_read_byte();
temp=b;
temp<<=8;
temp=temp|a;
wendu=temp*0.0625;
temp=wendu*10+0.5;
return temp;
} 展开
{
float wendu;
uchar a,b;
ds_reset();
delay(1);
ds_write_byte(0xcc);
ds_write_byte(0xbe);
a=ds_read_byte();
b=ds_read_byte();
temp=b;
temp<<=8;
temp=temp|a;
wendu=temp*0.0625;
temp=wendu*10+0.5;
return temp;
} 展开
3个回答
展开全部
temp<<=8; //左移8位,右边8位补0
temp=temp|a;//a是uchar,刚好是8位,也就是大于0,小于256。|是按位或操作。所以temp上面两句操作是先乘以2的8次方,然后再加上a
temp=temp|a;//a是uchar,刚好是8位,也就是大于0,小于256。|是按位或操作。所以temp上面两句操作是先乘以2的8次方,然后再加上a
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼说的不对
| 是按位或。。
| 是按位或。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询