C语言中不同数字类型的移位运算的坑

今天遇到一个问题,从串口接收的数据, 存储在char类型的buf中,取buf[3]进行移位操作

 

( buf[3] << 6 ) >> 6

得到的结果和预期不一致。

断点跟踪,发现,编译器把( buf[3] << 6 ) >> 6定位int类型,而我预期是char类型

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享
评论 抢沙发