移位运算符<<、>>、>>>在Java中的用法

<<:

左移: 8 <<= 1 相当于8 * 2^1、8 <<= 2 相当于8 * 2^2

>>:

右移:8 >>= 1 相当于8 / 2^1、8 >>= 2 相当于8 / 2^2

>>>:

无符号右移:无符号右移,忽略符号位,空位都以0补齐

正数>>>:与右移一样        负数>>>:如下

用代码展示会更直观一些:

public class Test {
    public static void main(String[] args){
    	int x = -8;
    	System.out.println("x = "+x);
    	x <<= 1;	//x * 2^1
    	System.out.println("x << 1 = "+x);
    	x >>= 1;	//x / 2^1
    	System.out.println("x >> 2 = "+x);
    	System.out.println("8的2进制:"+Integer.toBinaryString(8));
    	//负数的2进制是正数的2进制取反加一
    	System.out.println("-8的2进制:"+Integer.toBinaryString(-8));
    	int cha = Math.abs(x) / 2;//绝对值/2,用于求>>>值,
    	x >>>= 1;	//无符号右移,忽略符号位,空位都以0补齐
    	System.out.println("x >>> 1 = "+x);
    	System.out.println("x的2进制:"+Integer.toBinaryString(x));
    	double y = Math.pow(2, 32)-Math.pow(2, 32-1)-cha;//自己找的规律,不知道是不是最简便的
    	if(x == y){
    		System.out.println("true");
    	}
    }
}


以上就是移位运算符的用法,例子用的是负数,正数与之类似。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值