一、右移与左移
:带符号右移
>>>:无符号右移
public static void main(String[] args) {
//101=5 左移一位 1010=10
int left = 5;
System.out.println("输出left: " + left);
System.out.println("输出left二进制: " + Integer.toBinaryString(left)); //101
//左移:二进制位整体左移,然后低位补0;相当于乘2,101 -> 1010
System.out.println("输出left左移1位: " + Integer.toBinaryString(left >> 2)); //0010=2 11/4=2
System.out.println("输出right有符号右移2位: " + Integer.toBinaryString(right >> 2)); //0010=2
}
^:异或
public static void main(String[] args) {
/**
* ^异或操作: 口诀异1 两数相等取1,两数不等取0
* 1001
* 0101
* ========
* 1100
*/
System.out.println(Integer.toBinaryString(5)); //101
System.out.println(Integer.toBinaryString(9)); //1001
System.out.println(Integer.toBinaryString(5 ^ 9));
}
参考