+ -
当前位置:首页 → 问答吧 → 请教一个问题

请教一个问题

时间:2011-12-04

来源:互联网

写一个C表达式,在下列描述的条件下产生1,而在其他情况下得到0。假设x是int类型。
A.x的任何位都等于1。
B.x的任何位都等于0。
C.x的最高有效字节中的位都等于1。
D.x的最低有效字节中的位都等于0。
代码应该遵循位级整数编码规则,另外还有一个限制,你不能使用相等(==)和不相等(!=)测试。

《深入理解计算机系统》上的一道题目,想了很久没有头绪。求大神们指教。。。

作者: Meteora7   发布时间: 2011-12-04

A X&1
B X|1
C X^0
D X^1

不知道对不

作者: IVERS0N   发布时间: 2011-12-04

引用 1 楼 ivers0n 的回复:

A X&1
B X|1
C X^0
D X^1

不知道对不

C和D 好像不对哦
C 是 0x1111 0000 0000 0000,然后x^0 应该也还是 0x1111 0000 0000 0000 吧!
D 是 0x1111 1111 1111 0000 ,然后 x^1 就是 0x 0000 0000 0000 1111 了。

作者: Meteora7   发布时间: 2011-12-04

引用 2 楼 meteora7 的回复:

引用 1 楼 ivers0n 的回复:

A X&1
B X|1
C X^0
D X^1

不知道对不

C和D 好像不对哦
C 是 0x1111 0000 0000 0000,然后x^0 应该也还是 0x1111 0000 0000 0000 吧!
D 是 0x1111 1111 1111 0000 ,然后 x^1 就是 0x 0000 0000 0000……

我错了!
d的情况 然后x^1 之后就是 0x1111 1111 1111 0001 了 ,,对吧?
  怎么没人回复啊?

作者: Meteora7   发布时间: 2011-12-04


非空不就是真咯

作者: IVERS0N   发布时间: 2011-12-04