若int x=0123,则表达式(5+(int)(x))&(~2)的值是

计算可得88&1.&的运算规则是1&0=0结果为什么不是1呢... 计算可得88&1.
&的运算规则是1&0=0
结果为什么不是1呢
展开
 我来答
zhangxinyu247
2016-10-17 · TA获得超过257个赞
知道小有建树答主
回答量:176
采纳率:72%
帮助的人:75.1万
展开全部
&与&&是不同的操作运算符
&是按位与,&&是逻辑与
&&的含义就是你理解的意思,而&的含义理解如下:
例如 10&8,首先转化为二进制
10=(1010),8=(1000)
1010 &
1000
——
1000 ==8
所以
88&1==0
追问

嗯,对,我算错了。

可我在codeblocks里运行了一下,它给的值却是88,这是怎么回事呢?

追答
~2 中 ~是按位取反运行符,同样先转换为2进制。
运算规则:~1=0,~0=1
2转化为二进制位
0000 0010 取反 =
1111 1101
88=(0101 1000)
所以
1111 1101 &
0101 1000 =
——————
0101 1000 =88
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式