一个C++的基本问题

pytf 2009-03-27 10:17:05
#include <iostream.h>
void main()
{
unsigned short Columns =512;
const int gap = (4 - Columns & 0x3);
cout<<gap<<endl;
}
输出gap是0,why?
Columns &0x3 不是等于0吗?
为什么gap不是4而是0
...全文
160 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl0415197 2009-03-28
  • 打赏
  • 举报
回复
#include <iostream.h>
void main()
{
unsigned short Columns =512;
const int gap =(4 - (Columns & 0x3));
cout <<gap<<endl;
}
//输出gap是0,why?
//Columns &0x3 不是等于0吗?
//为什么gap不是4而是0
//注意-号的优先级比&大
walkmans 2009-03-27
  • 打赏
  • 举报
回复
&是与运算,如X&Y 表示将X,Y按位与运算
pytf 2009-03-27
  • 打赏
  • 举报
回复
明白,谢谢楼上的各位。
walkmans 2009-03-27
  • 打赏
  • 举报
回复
都被你们说了
liliangbao 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yangch_nhcmo 的回复:]
C/C++ code
const int gap = ((4 - Columns )& 0x3);//实际的运算顺序是这样子的
[/Quote]
大家都是年轻过!
萧霖 2009-03-27
  • 打赏
  • 举报
回复
&是什么运算符
品茶 2009-03-27
  • 打赏
  • 举报
回复
-优先级为4,结合方向自左向右
&优先级为8,结合方向自左向右
bbb332 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yangch_nhcmo 的回复:]
楼主可以看看下面
C/C++ 运算符优先级
http://www.cppblog.com/everspring79/archive/2008/04/11/46795.html
[/Quote]
up
yangch_nhcmo 2009-03-27
  • 打赏
  • 举报
回复
楼主可以看看下面
C/C++ 运算符优先级
http://www.cppblog.com/everspring79/archive/2008/04/11/46795.html
yangch_nhcmo 2009-03-27
  • 打赏
  • 举报
回复

const int gap = ((4 - Columns )& 0x3);//实际的运算顺序是这样子的
pengzhixi 2009-03-27
  • 打赏
  • 举报
回复
我就只有顶了
xylicon 2009-03-27
  • 打赏
  • 举报
回复
(4 - Columns & 0x3)

这句是先执行了 4 - Columns 然后 把 4 - Columns 的结果 与 0x3

downmooner 2009-03-27
  • 打赏
  • 举报
回复
(4 - (Columns & 0x3));


注意优先级
muyejingfeng100 2009-03-27
  • 打赏
  • 举报
回复
优先及问题,4-Conlumns先计算,然后再&.
改成

4 - (Columns & 0x3);

就可以了。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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