您的位置:首页 > 编程语言 > Java开发

java中的移位运算符:<<,>>,>>>总结

2017-09-11 18:30 281 查看
/*

 * <<:左移 左边最高位丢弃,右边补齐0

 * >>:右移 最高位是0,左边补齐0,;最高位是1,左边补齐1

 * >>>:无符号右移 无论最高位是0还是1,左边补齐0

 * 

 */

public class Demo4 {

public static void main(String[] args) {
//<<把<<左边的数据乘以2的移动数的次幂
System.out.println(3<<2);//3*2^2 = 12

//<<把<<左边的数据除以2的移动数的次幂
System.out.println(12>>2);//12/2^2 = 3

System.out.println(-24>>>2); //1073741818

}

}

/* >>>的计算

 * 计算出24的二进制:11000

 * 原码:10000000 00000000 00000000 00011000

 * 反码:11111111 11111111 11111111 11100111

 * 补码:11111111 11111111 11111111 11101000

 *

 * 11111111 11111111 11111111 11101000

 * 0011111111 11111111 11111111 111010(00)

 *

 * 结果为:1073741818

 *

 * 

 */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息