关于几个位运算的算法分析
16lz
2021-01-22
问题一:
给定一个正整数N,求其二进制形式的第一个比特位1(从低位到高位的顺序)。
例如,给定正整数12,其低8位二进制表示为:00001100
从低位到高位的顺序,第一个1出现在第三位。
版本一:
最低位开始,针对每一位进行与(&)操作判断是否为1,直到遇到第一个1为止。
算法实现(版本一):
public static int getFirstBit1(int N){
int mask = 1; int pos = 1; while(mask <= N){ if((N&mask) == mask){ break; }else { mask <<= 1; pos++; } } return pos; }
更多相关文章
- 字体图标的引入和通过媒体查询改变导航样式
- HTML样式和常用选择器
- 字体图标的引用和自定义样式/媒体查询的使用
- 数据库的CURD操作、PDO本质与原理的学习
- CSS之伪类选择器和简单盒子简单案例
- 伪类选择器与盒模型常用属性
- 伪类选择器-结构伪类、根据位置选择匹配
- 7.4——常用标签与应用场景之表格与单元格
- css伪类选择器和盒模型