/* <<,>>,>>>
<<左移:左边最高位丢弃,右边补齐0
>>右移:最高位是0,左边补0,最高位是1,左边补1
>>>无符号右移:无论最高位是0还是1,左边都用0补齐
*/
public class WeiYunSuan {
public static void main(String[] args) {
System.out.println(3 << 2);
System.out.println(24 >> 2);
System.out.println(24 >>> 2);
System.out.println(56 >> 4);
System.out.println(5 << 3);
System.out.println(-24 >> 2);
System.out.println(-24 >>> 2);
}
}
/* 分析: 要想参与位运算,就必须先得知道二进制 1、计算出3的二进制:11 00000000 00000000 00000000 00000011 (00)000000 00000000 00000000 0000001100 结果是:12
2、计算出24的二进制:11000
00000000 00000000 00000000 00011000
0000000000 00000000 00000000 000110(00)
结果是:6
3、计算出24的二进制:11000
00000000 00000000 00000000 00011000
0000000000 00000000 00000000 000110(00)
结果是:6
4、计算出24的二进制:11000
原码:10000000 00000000 00000000 00011000
反码:11111111 11111111 11111111 11100111
补码:11111111 11111111 11111111 11101000
1111111111 11111111 11111111 111010(00) 补码
补码:1111111111 11111111 11111111 111010
反码:1111111111 11111111 11111111 111001
原码:1000000000 00000000 00000000 000110
结果是:-6
//负数的补码到反码要 减1
5、计算出24的二进制:11000
原码:10000000 00000000 00000000 00011000
反码:11111111 11111111 11111111 11100111
补码:11111111 11111111 11111111 11101000
0011111111 11111111 11111111 111010(00) 补码
结果是:非常大
*/
感谢阅读,我是啊帅和和,一位大数据专业即将大四学生,祝你快乐。
|