Topic: ★一道关于"位运算符"的题目★

  Print this page

1.★一道关于"位运算符"的题目★ Copy to clipboard
Posted by: sfmcatl
Posted on: 2007-01-17 19:14

若有整型变量X=7,Y=8,Z=3,则表达式X^Y&-Z的结果是()
A.15 B.16 C.17 D.18
书里 给的答案 是: 15
(一)我用 JCreator 编译得到 结果为 15, 代码如下:
import java.math.*;
public class test{
  public static void main(String args[]) {
    int X=7,Y=8,Z=3 ,i=X^Y&-Z;
    System.out.printLight Bulb;//输出 i 的值
   }
}
(二) 可我用 笔算得是 13 . 过程 :
   7^8=00001111 ;
   -3 的补码为 11111101 (00000011按位取反11111100+00000001)
   上面的2个结果取& 得1101=13
问题出在哪里 让我的答案 与 书里和编译器里的结果 不一样?
明示.

2.Re:★一道关于"位运算符"的题目★ [Re: sfmcatl] Copy to clipboard
Posted by: JAVACHINA
Posted on: 2007-01-17 20:19

我刚才看了一下,问题主要出在逻辑运算符上的优先级问题上: &的优先级比^高,因此在计算时,首先计算的是(Y&-Z),然后才计算^。我在我的机器上试过了,就是这个问题。

3.Re:★一道关于"位运算符"的题目★ [Re: sfmcatl] Copy to clipboard
Posted by: sfmcatl
Posted on: 2007-01-17 20:32

还有一个问题:按位与 按位或 按位 异或 在以后的 编程中 用的多不多?

在一些 学习 java的 教材 中,好象 只有 学到 运算符章节中 才

涉及 到这些 内容, 其他地地方 就没有了.

4.Re:★一道关于"位运算符"的题目★ [Re: sfmcatl] Copy to clipboard
Posted by: sfmcatl
Posted on: 2007-01-17 20:49

感谢坛友的回复.
我计算的时候的确忽略了优先级的问题!
谢谢 Smile


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923