专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

">>" 和 "<<"操作符的有关问题

发布时间:2011-06-28 16:13:07 文章来源:www.iduyao.cn 采编人员:星星草
">>" 和 "<<"操作符的问题
好久没有用C,有些迷茫了

unsigned   long   tempIrKeyVal;
    .
    .
    .
if(   ((tempIrKeyVal> > 16)&0xFFFF)   ==   0x01EA   )

if(   (tempIrKeyVal> > 16)   ==   0x01EA   )
有什么区别,为什么要&0xFFFF   ??
谢谢!

------解决方案--------------------
你的unsigned long 肯定不止16位吧?
&0xffff就是只要后16位。
------解决方案--------------------
就是在32位系统下,也有有符号无符号的区别.
当是个有符号数,且为负时,右移左边一般补1而不是0这时区别就出来了.
------解决方案--------------------
(tempIrKeyVal> > 16)&0xFFFF 只需要最后16位(不管这个系统是多少位的)

------解决方案--------------------
肯定有区别:(tempIrKeyVal> > 16)后,仍然是unsigned long类型. "&0xFFFF "后才会变成unsigned short类型.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: