0
問題
是否指示存在該褶襉/提取的int[32]
並將其存儲的第一位爲int
?收集/提取從整數數組第一比特
我知道固有的
pext
,但那不是我真正想要的。我確實有一個代碼,但我想也許有一個指定的指令。
ints
數組除了第一位之外爲零。人類,不需要掩蔽。
代碼
void ints2bits(int &bits, int *ints) {
bits = (ints[0] << 0) + (ints[1] << 1) + ... + (ints[31] << 31);
}
UPDATE &反饋:
只是測試哈羅德建議。它工作得很好,我可以達到很好的加速。
如果你想提取數組中所有31個整數的第一位,並將這些位存儲在一個int的適當位置,那麼你的代碼是錯誤的。 – sameerkn
這沒有錯。我從字面上使用它。問題只在於這個操作有特定的指令。這種方法不需要掩飾陣列,這也許是你聲稱其不完整的原因。 –
您的代碼假設ints中的所有其他位都爲零,您應該在您的問題規範中明確聲明。 – samgak