转载请注明出处:http://blog.csdn.net/droyon/article/details/9336083
">>>"无符号右移
操作规则:无论正负数,前面补零。
">>"右移
操作规则:正数前面补零,负数前面补1
"<<"左移
操作规则:无论正负数,后面补零。
public class BitmoveTest {
public static void main(String args[]){
// >> 右移 前补符号位
//>>相当于除2,左移相当于乘2
int i=11;
int j=-13;
System.out.println("右移,前面的位补符号位");
//机器数值:0000 0000 0000 0000 0000 0000 0000 1011
//补码数值:0000 0000 0000 0000 0000 0000 0000 1011
//右移一位:0000 0000 0000 0000 0000 0000 0000 0101
System.out.println("11>>1 的值为:"+(i>>1));//结果为:5
//机器数值:1000 0000 0000 0000 0000 0000 0000 1101
//补码数值:1111 1111 1111 1111 1111 1111 1111 0011
//右移一位:1111 1111 1111 1111 1111 1111 1111 1001(补码)
//结果原码:1000 0000 0000 0000 0000 0000 0000 0111(-7)
System.out.println("-13>>1 的值为:"+(j>>1));//结果为:-7
System.out.println("*************************************\n");
System.out.println("左移,后面的位补零");
//机器数值:0000 0000 0000 0000 0000 0000 0000 1011
//补码数值:0000 0000 0000 0000 0000 0000 0000 1011
//左移一位:0000 0000 0000 0000 0000 0000 0001 0110
System.out.println("11<<1 的值为:"+(i<<1));//结果为:22
//机器数值:1000 0000 0000 0000 0000 0000 0000 1101
//补码数值:1111 1111 1111 1111 1111 1111 1111 0011
//左移一位:1111 1111 1111 1111 1111 1111 1110 0110(补码)
//结果原码:1000 0000 0000 0000 0000 0000 0001 1010(-26)
System.out.println("-13<<1 的值为:"+(j<<1));//结果为:-26
System.out.println("*************************************\n");
//>>>无符号右移 前补0
System.out.println("无符号右移,前面补零");
//机器数值:0000 0000 0000 0000 0000 0000 0000 1011
//补码数值:0000 0000 0000 0000 0000 0000 0000 1011
//右移一位:0000 0000 0000 0000 0000 0000 0000 0101
System.out.println("11>>>1 的值为:"+(i>>>1));//结果为:5
//机器数值:1000 0000 0000 0000 0000 0000 0000 1101
//补码数值:1111 1111 1111 1111 1111 1111 1111 0011
//右移一位:0111 1111 1111 1111 1111 1111 1111 1001(补码也是原码)
System.out.println("-13>>>1 的值为:"+(j>>>1));//结果为:2147483641
System.out.println("*************************************\n");
}
}
操作结果:
右移,前面的位补符号位
11>>1 的值为:5
-13>>1 的值为:-7
*************************************
左移,后面的位补零
11<<1 的值为:22
-13<<1 的值为:-26
*************************************
无符号右移,前面补零
11>>>1 的值为:5
-13>>>1 的值为:2147483641
*************************************