程序员面试宝典上一道题,求解答???

xiaoxiangmao 2010-07-18 04:21:44

看程序员面试宝典上一道题
#include <iostream>
using namespace std;
int main()
{
unsigned char a=0xA5;
unsigned int b=~a>>4;
printf("b=%d\n",b);
return 0;
}
问题1:~和>>优先级谁高???
2:答案怎么出来的??

谢谢各位高手了啊
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangmao 2010-07-18
  • 打赏
  • 举报
回复
哦,我懂了,谢谢啊!!!
phpjspasp 2010-07-18
  • 打赏
  • 举报
回复
1:单目运算符优先级高。~优先级高
2:单目运算符~要求操作数为int,所以首先将a提升成int,
因为a为无符号,提升为0x000000A5 (这个值是int类型的)
取反:0xFFFFFF5A
右移,高位补1:0xFFFFFFF5
赋值给b,
然后当成int输出。真值为负的 ~(0xFFFFFFF5)+1 = 10 + 1 = 11
即 -11

如果用cout输出,则是4294967285,因为其为类型推导。
xiaoxiangmao 2010-07-18
  • 打赏
  • 举报
回复
我的理解~优先级更高
jbz001 2010-07-18
  • 打赏
  • 举报
回复
这问题也值得发帖问啊
看看书就知道
先取反,然后右移
fcly1981826ly 2010-07-18
  • 打赏
  • 举报
回复
unsigned char a=0xA5;
unsigned int b=~a>>4;
printf("b=%d\n",b);

---------------------------


高手解释这三句,
fcly1981826ly 2010-07-18
  • 打赏
  • 举报
回复
学习学习学习学习

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧