在 3 个操作中,我怎样才能将一个字节转换为与此匹配的 32 位 int:
0x1fffe
我一次只能显式访问一个字节,因此我从 0xFF 开始,然后移动它。
我可以使用 4 个操作来完成,但我找不到消除一个操作的方法。
int mask2 = 0xFF << 8;
mask2 = mask2 | 0xFE;
mask2 = mask2 + mask2;
mask2 = mask2 | 0x02;
有什么想法吗?
换句话说,我需要一个掩码 0x1FFFE 以 3 个操作一次只访问一个字节,就像示例一样。
最佳答案
也许这就是您想要的...您从一个字节值 (0xff) 开始,然后使用 3 个按位 操作对其进行处理,获得 0x1fffe。
int in = 0xff;
int out = in<<9 | in<<1;
关于c - 非常简单的 mask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341214/