C 从2个位图中获取on位索引的组合
这个问题有两个层次 一级。 我有一个64位位图,我知道只有很少一个是打开的或设置为1。有没有一种方法可以在不使用分支的情况下获取设置的位 e、 g.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。63 BMP=00000000 1000010000000000000000000000000000000000000000000000000000000000000000000000000000 f(BMP)={9,14,26,51,52} 二级 现在我有2个64位位图,我需要2个集合位的组合 e、 g.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。63 BMP1=00000000000000000000000000000000000000000000000000000011000000000000 BMP2=000000000000000000000000000000000000000000000000000000000000000000000000000000000000 f(BMP1,BMP2)={(9,14)、(9,26)、(51,14)、(51,26)、(52,14)、(52,26)}C 从2个位图中获取on位索引的组合,c,bitmap,bit-manipulation,C,Bitmap,Bit Manipulation,这个问题有两个层次 一级。 我有一个64位位图,我知道只有很少一个是打开的或设置为1。有没有一种方法可以在不使用分支的情况下获取设置的位 e、 g.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。63 BMP=00000000 1000010000000000000000000000000000000000
(很抱歉格式化错误)如果可能的位字段相对较少,例如如果您知道设置的位不超过两位,并且最多有几千个,则可以将这些位字段存储在哈希表中 如果做不到这一点,您可以使用两位补码算法和有符号数来获得向量中的第一位集
v&-v
将获得在v
中设置的最低阶位的列向量。您可以通过位掩码和重复来获取所有这些内容