Juan Reina writes: > Hello: > > I have a problem using the shift operator, maybe a bug (ok, a bug or i'm wrong about shift operator) > > System: i386-redhat-linux > Version: Gcc 3.4.5 > Case: > In the next snipplet: > unsigned int getMask(int n){ > unsigned int mask = 0; > a = ~(~(a)<<n); > } > > In case of n<32, the function works correct but if n=32, the value of a is 0 (when should be 0xFFFF). Have a look at C99, Section 6.5.7 Para 3. http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf