1.左移:“<<”:
31 << 3 = 248 = 31 * 2 * 2 * 2, 如下图:
2. 右移:“>>” 与 无符号右移 :“>>>”:
①:正数:31 >> 2 = 7
31 >>> 2 = 7(正数右移和无符号右移移位后,最高位都用0来补)
②:负数:-31 >> 2 = -8 (右移后,最高位用1来补)
-31 >>> 2 =1073741816 (右移后,最高位用0来补)
最后是相对应的代码:
class Student{
public static void main (String[] args){
int i1 = 31;
//"<<":System.out.println(i1<<3);//248
//">>"与">>>":正数System.out.println(i1>>2);//7
System.out.println(i1>>>2);//7
//">>"与">>>":负数
int i2 = -31;
System.out.println(i2>>2);//8
System.out.println(i2>>>2);//1073741816
}
}