首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于移位运算的一个有关问题,求大神

2012-09-05 
关于移位运算的一个问题,求大神!unsigned char a0xA5unsigned char b~a4unsigned char c(~a)4pr

关于移位运算的一个问题,求大神!
unsigned char a=0xA5;
unsigned char b=~a>>4;
unsigned char c=(~a)>>4;
printf("b=%d\n",b);
printf("c=%d\n",c);
在VC6.0调试结果都是245,书上解释说>>优先级大于~,但是我看了下书,~的优先级是大于>>的
而且奇怪的是c那个赋值语句还加了括号,结果还是等于245,。
求大神指点一二。

[解决办法]
2楼大概没看清楚lz问题
~a先转的unsigned int,然后移位截断,因此结果不是你想要的
[解决办法]
首先 ~ 比 >> 优先级高 毋庸置疑
然后做运算的时候 类型提升 0xA5 是以0x000000A5进行操作的
~a 就是0xFFFFFF5A
>>4 就是 0x0FFFFFF5
然后赋值 0xF5

热点排行