为什么我的C语言移位操作达不到效果??😲😲
今天下午在对蓝牙数据处理的时候发现:
wr=wr<<8+read_Buffer[2];write(44,wr,0);
达不到预期效果;但把上述代码改为wr=wr*256+read_Buffer[2];write(44,wr,0);
就可以达到效果了;
立马反应到是不是±*/运算符优先级比移位操作符高(人的遗忘性);
确实是这样加上()后方可达到效果;如下:
wr=(wr<<8)+read_Buffer[2];write(44,wr,0);
附上运算符优先级表:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8847a681c212c7132a8217be04f275c3.png)