/*
* 位运算符:
* <<:左移,右边不够的补0
* <<左移特点:该符号左边拿到数据乘以2的移动次幂
* >>:右移,最高符号位如果是1,左边补齐1,最高符号位如果是0,左边补齐0
* //>>右移动特点:该符号左边的数据除以2的移动次幂:24/2^2 = 6
* >>>:无符号右移,最高符号位不管是1,还是0,左边永远补齐0
* */
public class OperatorDemo4 {
public static void main(String[] args) {
//<<左移特点:该符号左边拿到数据乘以2的移动次幂:3 * 2 ^2
System.out.println(3<<2);//12
//>>右移动特点:该符号左边的数据除以2的移动次幂:24/2^2 = 6
System.out.println(24>>2);
System.out.println(-24>>>2);
//步骤:先计算-24的二进制数据:最高符号位是1:
//通过原码得到补码--->将补码进行右移两位,左边补齐0
//右移完(补码)---->反码--->原码
}
}
* 位运算符:
* <<:左移,右边不够的补0
* <<左移特点:该符号左边拿到数据乘以2的移动次幂
* >>:右移,最高符号位如果是1,左边补齐1,最高符号位如果是0,左边补齐0
* //>>右移动特点:该符号左边的数据除以2的移动次幂:24/2^2 = 6
* >>>:无符号右移,最高符号位不管是1,还是0,左边永远补齐0
* */
public class OperatorDemo4 {
public static void main(String[] args) {
//<<左移特点:该符号左边拿到数据乘以2的移动次幂:3 * 2 ^2
System.out.println(3<<2);//12
//>>右移动特点:该符号左边的数据除以2的移动次幂:24/2^2 = 6
System.out.println(24>>2);
System.out.println(-24>>>2);
//步骤:先计算-24的二进制数据:最高符号位是1:
//通过原码得到补码--->将补码进行右移两位,左边补齐0
//右移完(补码)---->反码--->原码
}
}