<<,>>和>>>的区别

<<:左移
x<<y的含义为:x*2^y (x乘以2的y次方)
将x的二进制整体左移y位

int x = 3;
int y = 3;
int result = x<<y;
System.out.println(result);//24

结果为24
计算过程:
在这里插入图片描述
因为计算机都是通过数字的补码进行运算
所以我们需要先计算出3的补码,再将补码左移三位.然后算出反码,再算出原码

正数的原码,反码,补码相等

		<<的运算规则:
	左边多出来的位数直接舍弃,右边空出来的位数直接补0

>>:右移
x>>y的含义为 x/(2^y)
将x的二进制整体右移y位

int x = -15;
int y = 3;
int result = x>>y;
System.out.println(result);//-2

结果为-2
计算过程:
在这里插入图片描述
通过负数的原码计算反码时,符号位不变,其余位数相反
负数的反码的最后一位+1即为补码

这里值得注意的是:补码反推原码时,最后一位需要 -1

>>的运算规则:
	右边多出来的位数直接舍弃
	左边空出来的位数:
		如果是正数,则全部补位0
		如果是负数,则全部补位1

对于:>>>

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

value >>> num – num 指定要移位值value 移动的位数。

无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位 无符号右移运算符>>> 只是对32位和64位的值有意义

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值