gpt4 book ai didi

java - 计算二进制数中 1 的最佳方法

转载 作者:行者123 更新时间:2023-12-01 11:04:59 25 4
gpt4 key购买 nike

做了一道关于 codility 的问题,被要求拿两个数字并得到产品。然后获取该数字的二进制表示并计算二进制数中的 1 的个数。我的代码是

    return method(int a, int b)
{
int count=0;
int num;
num = a* b;
while(num>0)
{
if(num %2 ==1)
{
count++;
}
num = num >> 1;
}
return count;
}

然而它只给出了 50% 的正确率。谁能解释一下这一点。有什么我错过的事情我应该注意吗?

最佳答案

使用模运算符无法正确计算负数中的位数。请改用“num & 1”。另外,请确保您使用的是无符号右移,否则负数可能会产生无限循环。

正如 Lashane 所说,如果可能,请使用 64 位产品。

关于java - 计算二进制数中 1 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33047792/

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