【问题标题】:Java Operators with Numbers带数字的 Java 运算符
【发布时间】:2014-04-02 15:58:45
【问题描述】:

& 运算符如何处理数字? 例如:

x = 8 & 4;

答案是 0。

如何在不使用 java 或任何其他程序的情况下找到答案?

【问题讨论】:

标签: java operators bitwise-operators


【解决方案1】:

不使用Java将数字转换成二进制格式也能找到答案:

4 = 0100
8 = 1000

如果你对每个位执行 AND 操作,你会得到:

0 & 1 = 0
1 & 0 = 0
0 & 0 = 0
0 & 0 = 0

这就是为什么它是零。

【讨论】:

    【解决方案2】:

    Java 有三种“与”运算符——逻辑运算符&&,按位运算符&,以及& on booleans,不会短路. Java 编译器可以通过检查操作数的类型来区分运算符的种类。

    位运算符对其操作数进行二进制表示,对每个位执行“与”运算,并将结果作为数字返回。

    对于 4 和 8,按位“与”为零,因为它们没有共同的 1 位:

        00000100 -- 8
        00001000 -- 4
        --------
      & 00000000 -- 0
    

    对于其他数字,例如 22 和 5,结果会有所不同:

        00010110 -- 22
        00000101 --  5
        --------
      & 00000100 --  4
    

    【讨论】:

      【解决方案3】:

      & 是按位与运算符... 8 和 4 的二进制值是

      8 = 1000
      4 = 0100
      

      如果您知道 AND 运算符的工作原理,那么您就知道了

      1 & 0 = 0;
      

      所以按位与后,全是0

      【讨论】:

        猜你喜欢
        • 2018-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多