gpt4 book ai didi

java - 查找设置位的索引

转载 作者:行者123 更新时间:2023-12-01 15:00:52 25 4
gpt4 key购买 nike

这可能很简单,但我对位操作很陌生。我有一串位(例如警报字符串),我想找到其中所有 1 的索引号,以便我可以返回相关的警报或错误代码。例如,如果alarm_string = 1011000,那么我的方法应该返回3,4和6。我如何使用位操作来做到这一点?提前致谢!

最佳答案

此方法应将您的位字段转换为设置位位置的列表:

List<Integer> setBits(int in) {
final List<Integer> setBits = new ArrayList<>();
for (int i = 0; in != 0; i++, in >>= 1)
if (i & 0 == 1) setBits.add(i);
return setBits;
}

如果您的输入只是一个字符串,那么问题就真的微不足道了。

List<Integer> setBits(String in) {
final List<Integer> setBits = new ArrayList<>();
for (int i = in.length()-1, j = 0; i >= 0; i--, j++)
if (in.charAt(i) == '1') setBits.add(j);
return setBits;
}

关于java - 查找设置位的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13674224/

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