java移位运算符(一个大于号,两个大于号,三个大于号)
/*
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
*/
public static void main(String[] args) {
// 一个大于号是比较运算符,输出:false
System.out.println("1 > 2测试:");
System.out.println(1 > 2);
// 两个大于号是【有符号移位运算符】,转换成2进制后移动两位
// 目标数是正数(positive),在高位补“0”
// 若目标数是负数(negative),在高位补“1”。
// 15的二进制:00001111 移动两位后 00000011
System.out.println("15 >> 2测试:");
System.out.println(15 >> 2); // 输出结果:3
System.out.println(-15 >> 2); // 输出结果:-4
// 三个大于号是【无符号移位运算符】
System.out.println("\n3、以下测试>>>:");
System.out.println((-1>>>0)); // 输出结果:-1
System.out.println((1>>>0)); // 输出结果:1
}