gpt4 book ai didi

java - 获取组成数字的二进制数列表

转载 作者:行者123 更新时间:2023-12-02 03:45:38 25 4
gpt4 key购买 nike

在Java中,有一个像0b1010这样的数字,我想获得“组成”这个数字的列表:0b10000b0010 > 在此示例中:每个位集一个数字。

我不确定获得它的最佳解决方案。你有什么线索吗?

最佳答案

使用 BitSet !

long x = 0b101011;
BitSet bs = BitSet.valueOf(new long[]{x});
for (int i = bs.nextSetBit(0); i >=0 ; i = bs.nextSetBit(i+1)) {
System.out.println(1 << i);
}

输出:

1
2
8
32

如果您确实希望将它们打印为二进制字符串,请对上述方法进行一些修改:

long x = 0b101011;
char[] cs = new char[bs.length()];
Arrays.fill(cs, '0');

BitSet bs = BitSet.valueOf(new long[]{x});
for (int i = bs.nextSetBit(0); i >=0 ; i = bs.nextSetBit(i+1)) {
cs[bs.length()-i-1] = '1';
System.out.println(new String(cs)); // or whatever you want to do with this String
cs[bs.length()-i-1] = '0';
}

输出:

000001
000010
001000
100000

关于java - 获取组成数字的二进制数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com