我需要创建三个位掩码,最后在三个32位unsigned ints
(我们称它们为x,y和z)。口罩应该结束了这样的:有没有一个简洁的方法来创建C中的位掩码?
x: 0000 0001 1111 1111 1111 1111 1111 1111
y: 0000 1110 0000 0000 0000 0000 0000 0000
z: 1111 0000 0000 0000 0000 0000 0000 0000
到目前为止,我有这样的:
unsigned int x = (1<<25)-1;
unsigned int y = (~x)&((1<<28)-1);
unsigned int z = (~x)<<3;
但似乎有点乱。任何人都可以想出一个更简洁(可读)的方式吗?
'X = 0x01FFFFFF; y = 0x0E000000; z = 0xF0000000;' – pmg
为什么不用十六进制编写它们?每个8个字符似乎足够简洁 – daniel
@pmg:谢谢,看起来好多了! –