黑马程序员技术交流社区

标题: 位运算问题 [打印本页]

作者: 杜加璇    时间: 2013-4-3 14:37
标题: 位运算问题
本帖最后由 杜加璇 于 2013-4-3 17:00 编辑

public class My {

        public static void main(String[] args) {
                System.out.println(6 & 1);

        }

}    为什么 打印结果是1?       101
                                                001         相同为true 不同为false应该是3啊为什么呢
                                                
                                                
作者: 曹睿翔    时间: 2013-4-3 14:45
本帖最后由 曹睿翔 于 2013-4-3 14:53 编辑

咳咳,6的二进制是110,1*2^2+1*2^1+0*2^0=6,而1*2^2+0*2^1+1*2^0=5
还有结果是0不是1,{:soso_e126:}
作者: 梁志兵    时间: 2013-4-3 14:46
  101
&
  001
------
001
逻辑与运算符 &
        简单记:同时为true,结果为true。
作者: 杨玉辉    时间: 2013-4-3 14:47
  哥们飘过
作者: lucy198921    时间: 2013-4-3 14:54
6的二进制是110,逻辑运算符与&,只要都是真就为真,结果固然是1.

虽然这个问题是简单的,但是我想还是需要大家多巩固,
同时也不忘相关的知识点的回顾.

附带一些运算符的有用结论:

________________________________________________________________________________
逻辑与运算符 &
               
                第一个条件    第二个条件     结果
                true          true                         true
                false         true           false
                true          false          false
                false         false          false

                简单记:同时为true,结果为true。

________________________________________________________________________________
逻辑或运算符 |
               
                第一个条件    第二个条件     结果
                true          true                         true
                false         true           true
                true          false          true
                false         false          false

                简单记:同时为false,结果为false。

________________________________________________________________________________
逻辑异或运算符 ^
               
                第一个条件    第二个条件     结果
                true          true                         false
                false         true           true
                true          false          true
                false         false          false

                简单记:同时为同一种情况,结果为false。

________________________________________________________________________________

逻辑非运算符 !
               
                !true  false
                !false true
                !!true true


________________________________________________________________________________

短路与:

                &:左边无论什么结果,右边都执行。
                &&:左边为false,右边不执行,结果为false。


                短路或:
                |:左边无论什么结果,右边都执行。
                ||:左边为true,右边不执行,结果为true。




作者: 田光峰    时间: 2013-4-3 14:56
public class My {

        public static void main(String[] args) {
                System.out.println(6 & 1);

        }

}   


6&1  算法如下:
     
       1 1 0
  &   0 0 1
--------------------------
       0 0 0
所以结果为0

&  的算法是  真&真=真; 假&假=假; 真&假=假;

作者: 梁志兵    时间: 2013-4-3 15:03
110
&
  001
------
000

逻辑与运算符 &
        简单记:同时为true,结果为true。

楼主我也被你误导了 6的二进制是110,
作者: 杜加璇    时间: 2013-4-3 16:33
梁志兵 发表于 2013-4-3 15:03
110
&
  001

不好意思 整错了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2