how to cut off 3 bits from a 32bit integer

I enter a 32 bit variable, lets say with all bit set to 1 for the fun of it. This will be:
FFFFFFFF (8fs) or beter in Binary: 11111111111111111111111111111111 or 4294967295 in dec
What I want is to cut of the first three bits! Now pay attention please, this will get you:
11111111111111111111111111111 (29bits) or easier to read: 00011111111111111111111111111111
And this will translate to: 1FFFFFFF or 536870911
Do you see now that your suggested bit masking is wrong? It does not deliver 1FFFFFFF so it does not do the right thing. Easy as that.

the example I've provided in #10 does exactly this.
If you still can't believe that masking works bullet proof, I suggest you come up with code

One more try to explain it:

11111111111111111111111111111111 // the "Input"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& // the Operator
00011111111111111111111111111111 // the "Bitmask"

00011111111111111111111111111111 // the Result