Lee*_*ton 3 c readability bit-manipulation bit-masks
我需要创建三个32位的掩码unsigned ints(让我们称之为x,y和z).面具应该像这样结束:
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
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有这个:
unsigned int x = (1<<25)-1;
unsigned int y = (~x)&((1<<28)-1);
unsigned int z = (~x)<<3;
Run Code Online (Sandbox Code Playgroud)
但它似乎有点凌乱.任何人都可以提出更简洁(和可读)的方式吗?
unsigned int x = 0x01FFFFFF,
y = 0x0E000000,
z = 0xF0000000;
Run Code Online (Sandbox Code Playgroud)
这对你来说可读吗?