小编tar*_*342的帖子

使用内在函数提取和移位奇数/偶数位

有没有办法使用内在函数来优化以下代码?它获取 16 位整数中的所有奇数索引位,并将它们尽可能向右移动。

我在想也许可以使用 Fortran 中 IHFTC 的 C++ 等效项(是否有与此等效的 C++ 版本?)。但我觉得还有更有效的方法。

int x = some16bitInt;
x = x&0x5555;
int y = 0;
for (int i = 0; i < 8; i++)
    y = y | ((x >> i) & (0x01 << i));
'''
Run Code Online (Sandbox Code Playgroud)

c++ bit-manipulation intrinsics micro-optimization

3
推荐指数
1
解决办法
991
查看次数