gpt4 book ai didi

c - 从 2 个位图中获取 on 位索引的组合

转载 作者:行者123 更新时间:2023-11-30 19:42:03 25 4
gpt4 key购买 nike

这个问题有2个级别1级。我有一个 64 位位图,我知道其中只有少数位打开或设置为 1。有没有办法在不使用分支的情况下获取设置了哪些位?

例如___(0)__________________________________________________________________________(63)

BMP = 000000001000010000000000010000000000000000000000011000000000000

f(BMP) = {9, 14, 26, 51, 52}

2级。

现在我有 2 个 64 位位图,我需要 2 个中设置位的组合。

例如____(0)__________________________________________________________________________(63)

BMP1 = 000000001000000000000000000000000000000000000000011000000000000

BMP2 = 000000000000010000000000010000000000000000000000000000000000000

f(BMP1, BMP2) = {(9,14), (9, 26), (51, 14), (51, 26), (52, 14), (52, 26)}

  1. 我知道位图几乎总是稀疏的。
  2. 即使没有分支的解决方案是不可能的,那么请建议最快的分支方法。

(抱歉格式错误)

最佳答案

如果可能的位域数量相对较少,您可以将可能的位域存储在哈希表中,例如,如果您知道设置的位不超过两个且最多有几千种可能性。

如果做不到这一点,您可以使用补码算术和有符号数执行一些技巧来获取 vector 中设置的第一位。 v & -v 将为您提供 v 中设置的最低位的列 vector 。您可以进行位掩码并重复以获取全部内容。

关于c - 从 2 个位图中获取 on 位索引的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32914897/

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