public static void main(String[] args) {
     show(4 | 6 | 10);
}

private static void show(int i){
     System.out.println(i);
}运行的结果为:14
这个怎么理解了

解决方案 »

  1.   


    4 = 0x00 00 00 04(0000 0100)
    6 = 0x00 00 00 06(0000 0110)
    10 = 0x00 00 00 0A(0000 1010)0100
    0110  |(二进制或运算)
    -----
    0110
    1010 |(二进制或运算)
    ------
    1110 = 14
      

  2.   

    4 = 0x00 00 00 04(0000 0100)
    6 = 0x00 00 00 06(0000 0110)
    10 = 0x00 00 00 0A(0000 1010)0100
    0110  |(二进制或运算)
    -----
    0110
    1010 |(二进制或运算)
    ------
    1110 = 14
      

  3.   

    上面的了解了 谢谢各位  顺便再问一个
    int a = 4;
    int b = -10;
    int c = a | b;计算过程:
    4的二进制形式为0000 0000 0000 0000 0000 0000 0000 0100
    -10的二进制形式为1111 1111 1111 1111 1111 1111 1111 0110
    按照计算规则,结果为1111 1111 1111 1111 1111 1111 1111 0110为什么-10的二进制是1111 1111 1111 1111 1111 1111 1111 0110