gpt4 book ai didi

计算整数 C 中 1 的数量

转载 作者:行者123 更新时间:2023-11-30 20:59:40 25 4
gpt4 key购买 nike

在 C 中计算 32 位整数 x 中 1 的数量的最佳方法是什么,而不使用 for 或 while 循环,并且不使用大于 0xFF 的常量?

我想到的是向右移动 x 24 并计算移位后的整数中有多少个 1,并将其存储在变量 count 中。然后,向右移动 x 16 并将 count 增加移动后的整数中 1 的数量,依此类推。

那么,有更好的解决方案吗?

最佳答案

您可以列出 d 中 1 的数量位数。这需要一个表 2^d条目,每个条目不超过值 d (<255)。

现在您可以将您的号码切成 d 的片段位并查找所有切片的计数。

空间/操作数量之间的一个很好的折衷可能是 d=4 ( 8 切片,表大小= 16 )。

关于计算整数 C 中 1 的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46269166/

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