java中的(或运算,异或运算,与运算)解释下
发布网友
发布时间:2022-04-21 04:45
我来回答
共3个回答
热心网友
时间:2022-06-18 01:26
java中或运算、异或运算、与运算的使用实例和解释如下:
public class Test { public static void main(String[] args) {
// 1、左移( << )
// 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:
// // 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20 System.out.println(5 << 2);// 运行结果是20
// 2、右移( >> ) 高位补符号位
// 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:
// 0000 0000 0000 0000 0000 0000 0000 0001
System.out.println(5 >> 2);// 运行结果是1
// 3、无符号右移( >>> ) 高位补0
// 例如 -5换算成二进制后为:0101 取反加1为1011
// 1111 1111 1111 1111 1111 1111 1111 1011 /
/ 我们分别对5进行右移3位、 -5进行右移3位和无符号右移3位:
System.out.println(5 >> 3);// 结果是0
System.out.println(-5 >> 3);// 结果是-1
System.out.println(-5 >>> 3);// 结果是536870911
// 4、位与( & )
// 位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0
System.out.println(5 & 3);// 结果为1
System.out.println(4 & 1);// 结果为0
// 5、位或( | )
// 第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0
System.out.println(5 | 3);// 结果为7
// 6、位异或( ^ )
// 第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0
System.out.println(5 ^ 3);//结果为6
// 7、位非( ~ ) // 操作数的第n位为1,那么结果的第n位为0,反之。 System.out.println(~5);// 结果为-6 } }
热心网友
时间:2022-06-18 01:26
或:两个中只要有一个则为真
异或:两个中必须是一真一假才为真
与:两个都为真的时候才为真
热心网友
时间:2022-06-18 01:27
或 两个满足其中一个就返回true,如果前面的条件满足,则后面不会执行; 1==1 || null.equals("haha");虽然后面肯定空指针,但前面满足,后面不会执行,也不会运行时异常
异或 两个不同返回true,两个相同返回 false.....
与 两个必须同时满足则返回true,如果前面的条件不满足,后面也不会执行 1==2 && null.equals("haha");追问System.out.println(1|3),System.out.println(1^|3),System.out.println(1&3)结果是:原因?