总结位移运算的规律以及一些使用场景

本文总结了Java中位移运算的规律,如用于快速计算2的幂次方,以及在HashMap初始化时的作用。还探讨了如何通过位运算将二进制数列中的位设为1或0,适用于权限组设计和多选按钮存储方案。此外,文章介绍了不同进制间的转换方法,包括十进制与二、八、十六进制之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结的一些java位运算的规律,方便快速计算

位移运算:
正整数 << n  ;  左移运算 相当于 正整数*2的n次幂
正整数 >> n  ;  右移运算 相当于 正整数/2的n次幂
负整数 << n  ;  左移运算 相当于 负整数*2的n次幂
负整数 >> n  ;  右移运算 相当于 负整数/2的n次幂,如果有余数则结果再-1,除数大于被除数,结果等于-1

我们在阅读源码的时候会看到有些值明明可以直接赋值,但是却被写成了如:1 << 4 这样的格式,其目的只是为了在当们用到这个数字的时候需要注意他是2的幂次方。

HashMap的初始化时,如果我们不设置其初容量大小,那么会看到源码中会帮我们设置一个默认大小:1 << 4,因为做位移运算会消耗少量资源,所以我们初始化的时候尽量直接设置大小,避免一次运算。

将一个二进制数列中的某一项设置成1或0的方法:
举例:现在有一个十进制数7,转换成二进制数列后为:00000111
那么我想让第3位上的数设置成0怎么做?
方案如下:
public static void 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值