public static void main(String[] args){
System.out.println(1|6);
System.out.println(7|5);
System.out.println(5|7);
}请问答案分别是什么,并做下解释。

解决方案 »

  1.   

    0|0=0, 0|1=1, 1|0=1, 1|1=1
    所以:
    1|6
    0000 0001
    or
    0000 0110
    ----------
    0000 01117|5
    0000 0111
    or
    0000 0101
    ---------
    0000 01115|7
    0000 0101
    or
    0000 0111
    ---------
    0000 0111
      

  2.   

    Lz这样解释行了吧//按位OR运算符(|)

    public static void main(String[] args){ 
    /**二进制  1OR 0返回1
     * 00000001  1
     * 00000110  6
     * 00000111  7
     */
    System.out.println(1|6); 
    /**
     * 00000111 7
     * 00000101 5
     * 00000111 7
     */
    System.out.println(7|5); 
    /**
     * 00000101 5
     * 00000111 7
     * 00000111 7
     */
    System.out.println(5|7); 

      

  3.   

    变成二进制你就明白了
    1的二进制  00000001
    6的二进制  00000110
    通过“或”位操作符得到的结果就是 00000111 再变为10进制就是77的二进制 00000111
    5的二进制 00000100
    结果就是   00000111
    也就是7|这就是位运算符中是“或”
    你可以再看下 & 与 ^ 异或  ~非