Java计算二进制中1出现的位置
作者:互联网
Java计算二进制中1出现的位置
应用场景:权限设置为二进制11001时,则1,4,5具有权限。数据源为11001对应的十进制25,则输入为25时,输出为1,4,5。
计算原理
将十进制转化为二进制字符串,然后利用lastIndexOf方法,从后向前寻找1的位置,并用字符串进行拼接。
源码:
public class Test {
public static void main(String[] args) throws Exception {
StringBuilder index = new StringBuilder();
String indexes = Integer.toBinaryString(25);
System.out.println(indexes);
int k = indexes.length();
while (k >= 0) {
int ind = indexes.length() - indexes.lastIndexOf("1", k);
if (ind >= 0) {
k = indexes.lastIndexOf("1", k) - 1;
index.append(ind);
index.append(",");
}
else {
break;
}
}
System.out.println(index.substring(0, index.length()-1));
}
}
输出
11001
1,4,5
标签:index,Java,25,二进制,位置,indexes,length,lastIndexOf 来源: https://blog.csdn.net/Poiscorpion/article/details/97372450