gpt4 book ai didi

chess - 一个字节的尾随/前导零计数

转载 作者:行者123 更新时间:2023-12-02 07:56:57 24 4
gpt4 key购买 nike

我正在使用 Java 编写国际象棋引擎。

我试图找到一个字节中第一个 1 位的索引和最后一个 1 位的索引。

我目前在 Java 中使用 Long.numberOfTrailingZeros()(或类似的东西),并且想模拟该功能,但字节除外。

会不会是这样的:

byte b = 0b011000101;
int firstOneBit = bitCount ((b & -b) - 1);

如果是这样,我将如何相对有效地实现 bitCount。我不介意好的解释,请不要只给我代码。

最佳答案

使用包含 256 个条目的查找表。创建它:

unsigned int bitcount ( unsigned int i ) {
unsigned int r = 0;
while ( i ) { r+=i&1; i>>=1; } /* bit shift is >>> in java afair */
return r;
}

这当然不需要很快,因为您最多执行 256 次来初始化您的表格。

关于chess - 一个字节的尾随/前导零计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/376840/

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