代码解释n |= n >>> 16
2024-09-06 02:19:30
public static int nextPowerOf2(int n) {
n -= 1;
n |= n >>> 16;
n |= n >>> 8;
n |= n >>> 4;
n |= n >>> 2;
n |= n >>> 1;
return n + 1;
}
以65举例子,
1
2
3
4
5
|
n-= 1 ; // n=1000000(二进制) ... //16、8无变化 n|=n>>> 4 ; //n=n|(n>>>4)=1000000|0000100=1000100 n|=n>>> 2 ; //n=n|(n>>>2)=1000100|0010001=1010101 ... |
看出规律来了吧,右移多少位,就把最高位右边的第x位设置为1;
第二次,就把两个为1的右边xx位再设置为1;
第n次,就把上一步出现的1右边xxxx位置为1;//xxx随便写写,意会
这样执行完,原来是1000000,变成了1111111,最后加1,就变成2的整数次方数了。
最新文章
- mongodb未授权访问漏洞
- [转]在Eclipse中使用JUnit4进行单元测试(中级篇)
- aud$定位错误用户密码登陆数据库的具体信息
- C# 表达式树demo
- HttpClient_httpclient 4.3.1 post get的工具类
- .NET微信通过授权获取用户的基本信息
- JSON 数字排序 多字段排序
- 大写String和小写string的区别
- iPhone 5s网络钓鱼邮件,和苹果发布会同步亮相
- Django HTTP处理流程(自我总结)
- C++ map multimap
- javascript入门篇(四)
- 面向复杂应用,Node.js中的IoC容器 -- Rockerjs/core
- node 安装 vue-cli 创建vue项目
- 【AtCoder】AGC017
- 超实用!9个目前流行的MATERIAL DESIGN前端框架
- 微信为啥不能直接下载.apk安装包
- 您可能不知道的CSS元素隐藏“失效”以其妙用——张鑫旭
- python基础(三)python数据类型
- [XML] CoolFormat