用keil中编写c语言程序,"(temp&0x80)>>7;"是什么意思?

如题所述

temp&0x80表示只取temp的最高位,结果是0x00或0x80。(temp&0x80)>>7表示将最高位右移7位,就是说最高位转到最低位,并左补0。
那么00右移7位是00,0x80右移7位是0x01来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-13
(temp&0x80)>>7

temp的最高位移到最低位

temp t7 t6 t5 t4 t3 t2 t1 t0
0x80 1 0 0 0 0 0 0 0
temp&0x80 t7 0 0 0 0 0 0 0
(temp&0x80)>>7 0 0 0 0 0 0 0 t7

希望满意!!!望采纳!!!
如果觉得好,望赞同!!!本回答被提问者和网友采纳
第2个回答  2013-03-08
这是先对temp的最高位状态进行筛选,看其到底是1还是0,然后再右移7位,变成最低位。这样循环8次就是一字节了。是不是做单片机呢吧,这是最高位溢出时常用的方法,比如18b20的正负号问题
第3个回答  2013-03-08
判断temp的最高位,如果最高位为1,计算结果就是1,如果最高位为0,计算结果就是0.
第4个回答  2013-03-08
temp按位与0x80 得到的结果向右位移 7 位
相似回答