gpt4 book ai didi

Java - 如何从给定值获取位数(索引)?

转载 作者:行者123 更新时间:2023-12-01 22:19:53 31 4
gpt4 key购买 nike

我有一个数字,它是 2 的保证幂(1,2,4,8,16,...等)。如何从这个数字中获取“位索引”?

假设我得到数字“8” -> 我寻求的答案是“3”(位#3)

 1 -> 0
2 -> 1
4 -> 2
8 -> 3
16 -> 4
32 -> 5
..etc...

当然,我可以构建一个数组或字典(键是数字,值是位#)...比如说从值到位#的 16 个索引,

我也可以做

int i = 0, counter = 1;
while (counter != needed_value) {
counter *= 2;
i++;
}
// now "i" contains my bit#

但是还有……更奇特的方法吗?

最佳答案

没什么花哨的,只是 java.lang.Integer 类提供的内容(尽管实现有点花哨):

int lowestOneBit = Integer.numberOfTrailingZeros(needed_value);

关于Java - 如何从给定值获取位数(索引)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61673036/

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