java吧 关注:1,234,220贴子:12,702,915
  • 14回复贴,共1
int a = 14;
int b = 2;
int x = a & b;
int y = a | b;
int z = a ^ b;
System.out.println(a + "&" + b + "=" + x);
System.out.println(a + "|" + b + "=" + y);
System.out.println(a + "^" + b + "=" + z);
结果:
14&2=2
14|2=14
14^2=12


1楼2016-09-04 17:01回复
    为什么有这样的结果
    这是怎么运行的


    2楼2016-09-04 17:01
    回复
      &不是同真为真吗,14与2真假是怎么定义的


      3楼2016-09-04 17:03
      收起回复
        有人吗


        4楼2016-09-04 17:04
        回复
          你把|| && 这些符号都加了引号, JAVA解析成了字符串 所有才会这样


          5楼2016-09-05 19:03
          收起回复
            先把十进制转换成二进制,按位求&


            来自手机贴吧6楼2016-09-05 19:44
            收起回复
              14&2:
              1110
              0010
              ------
              0010
              转换十进制 :2
              & 与
              0 ^ 1 得 0
              1 ^ 1 得 1
              0 ^ 0 得 0
              1 ^ 0 得 0
              14|2:
              1110
              0010
              ------
              1110
              转换十进制 :14
              | 或
              0 ^ 1 得 1
              1 ^ 1 得 1
              0 ^ 0 得 0
              1 ^ 0 得 1
              a^b:
              1110
              0010
              ------
              1100
              转换十进制:12
              ^ 异或
              0 ^ 1 得 1
              1 ^ 1 得 0
              0 ^ 0 得 0
              1 ^ 0 得 1


              IP属地:广东7楼2016-09-05 20:16
              收起回复
                逻辑与见0得0,逻辑或见1得1,逻辑异或相同得1不同得0,都是2进制的计算,而且java底层只进行二进制计算哦


                IP属地:江苏来自Android客户端8楼2016-09-05 20:27
                收起回复
                  lz已经搞明白了,谢谢大家


                  来自Android客户端9楼2016-09-05 22:38
                  回复