3ビットのマスクを作成して、3つの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
16進数で書くのはなぜですか? 8文字がそれぞれ簡潔に見える – daniel
@pmg:ありがとう、それはもっと良く見えます! –