public   class   HelloWorld
{
      public   static   void   main(String[]   args)
      {
            System.out.println(5&8);
      }
}--输出结果为0,是什么回事情啊!希望有人解释一下.
输出结果为什么会是0啊!按道理说3为true,而5也为true,true和true应该是1才对啊! ,希望大家给出详细的解释

解决方案 »

  1.   

    这里的&并不是逻辑运算,而是位与运算。
    5的二进制是101
    8的二进制是1000
    因为int占4个字节,所以应表示成
    00000000 00000000 00000000 00000101
    00000000 00000000 00000000 00001000
    进行&运算后结果为:
    00000000 00000000 00000000 00000000
    所以输出就是0
    如果改成 System.out.println(5&9);
    输出就是1建议去看看位运算。 
      

  2.   

       谢谢,我知道了,可是在什么情况下知道&所代表的是按位与而不是逻辑与呢?
      

  3.   

    逻辑与在2个都是boolean的时候才有用。
      

  4.   

    而且是 && ,2个&
      

  5.   

    两边是布尔类型时&、|、^称为布尔逻辑运算符两边是数值类型时称为位运算符而&&、||称之为逻辑运算符
      

  6.   

    2个&&是逻辑运算符
    1个&是按位与运算