java的左移<<右移>>运算

本文详细阐述了位移运算符(左移<<和右移>>)在整数操作中的工作原理。重点讨论了左移可能导致正负数转换的情况,以及右移时正数和负数的不同处理方式。同时提到了无符号右移>>>在补零方面的特性。对于超过32位的位移,会先取余数再进行位移。这些知识对于理解和优化位运算至关重要。
摘要由CSDN通过智能技术生成

左移<<,向左移动一定的位数,高位舍弃,低位补0,但是在移动过程中正数可能变负数,负数变正数。

当int 类型的数据进行左移的时候,当左移的位数大于等于32位的时候,位数会先求余数,然后再进行左移。例如如果真的左移34位 ,a<<(34%32),则移动的位数为2。

右移>>,右移时,低位舍去,对正数高位补0,对负数高位补1。

无符号右移>>>,运算符和右移运算符是一样的,不过无符号右移运算符在右移的时候是补0的,而右移运算符是补符号位的

另外,对于超过32位的位移,和左移运算符一样,,会先进行位数求余数

在正数一般情况下可以用以下规律,可以提高效率,但是当遇到移动位数比较大或者负数时,可能不太适用。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值