| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 961 人关注过本帖, 1 人收藏
标题:算x/y&~z
只看楼主 加入收藏
蓝莓
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-12-15
结帖率:80%
收藏(1)
已结贴  问题点数:20 回复次数:17 
算x/y&~z
main()
{ int  x=3, y=2,z=1;
printf("%d\n",x/y&~z);
}

我的思路如下:
3/2=1
1&~1(1是正数,反码补码都不变)
    00000001
  & 00000001
 等于      1

但是答案等于0 = =
为什么答案等于0?
答案如果等于0,那么不就是应该是
00000001
11111110
但是1不是正数吗?正数的反码补码都不变啊
2015-01-07 10:47
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
我觉得类如  x/y&~z  这样的表达式  在实际应用中 基本用不到  所以也不去探讨之

实际应用时  为了防止把优先级别弄错了 相关表达式可以用括号括起来

[ 本帖最后由 wp231957 于 2015-1-7 10:51 编辑 ]

DO IT YOURSELF !
2015-01-07 10:49
蓝莓
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-12-15
收藏
得分:0 
回复 2楼 wp231957
虽然在实际应用中用不到……但是考试会考到啊这又是考题
那么我的思路错了吗?
2015-01-07 10:54
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
你最后应该是做1~1运算,相同数异或当然为0了。

能编个毛线衣吗?
2015-01-07 11:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:4 
你们没回答到点子上呀^_^
楼主是不明白『为什么 ~1 是 1……1110』,在那里说什么“正数的反码补码都不变啊”的。

2015-01-07 11:16
蓝莓
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-12-15
收藏
得分:0 
回复 5楼 rjsp
那~1是什么意思?
2015-01-07 11:48
蓝莓
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-12-15
收藏
得分:0 
& 不是AND 与运算吗?
2015-01-07 11:58
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
我觉得该算术式的运算顺序是:(x/y)&(~1)=(1)&(-2)=0b0000000000000001 & 0b1111111111111110=0b0000000000000000=0,和一个取反的数相与,就是异或这个数。

能编个毛线衣吗?
2015-01-07 13:22
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:2 
这么多回复就5楼一个靠谱的

另外实在忍不住吐槽一下楼上了
“和一个取反的数相与,就是异或这个数。”
a&~b => ~(~a | b)  ===>  这个神马集合呀,神马数字电路啊,blabla,各种课上应该都学过吧?
等于a^b吗?你让a=1,b=2算算看?
只不过正好1&(~1)跟1^1结果相同罢了
你不能因为1加-1等于0,1乘以0也等于0就说他俩是一回事儿不是?

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2015-01-07 17:24
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:2 
回复 9楼 succubus
严重道歉。未经仔细考虑即回复。
我只记得在数字电路里异或是可以分解的,没验证就下结论,实际上 a^b=(a & ~b)|(~a & b),即将两个数互相取反相与的结果再相或。

能编个毛线衣吗?
2015-01-07 18:20
快速回复:算x/y&~z
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016143 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved