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