C语言中的运算问题
这个语句中while(temp&0x01&&!(temp&(1<<16)));应该怎么理解,temp=1按照优先级先运算1左移动16位然后temp和前一个值与运算,怎么中...
这个语句中while(temp&0x01&&!(temp&(1<<16)));应该怎么理解,temp =1
按照优先级先运算1左移动16位 然后temp 和前一个值与运算,怎么中间有两个逻辑运算相连得逻辑与和逻辑非这里就搞蒙了,另外temp&(1<<16)这一句的值是不是=10000000000000000 展开
按照优先级先运算1左移动16位 然后temp 和前一个值与运算,怎么中间有两个逻辑运算相连得逻辑与和逻辑非这里就搞蒙了,另外temp&(1<<16)这一句的值是不是=10000000000000000 展开
2个回答
2016-11-11
展开全部
while(temp&0x01&&!(temp&(1<<16)));
&&的左面 temp&0x01 ->判断最右边的位是否1
&&的右面 !(temp&(1<<16)) -> temp先与1左移16位后的数相与,再取反
最后,左右再做逻辑判断 ~
~~~~~~~
&&的左面 temp&0x01 ->判断最右边的位是否1
&&的右面 !(temp&(1<<16)) -> temp先与1左移16位后的数相与,再取反
最后,左右再做逻辑判断 ~
~~~~~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询