下記の実行結果が、
#include <stdio.h>
int main(void) {
unsigned int i,j;
for (i=0 ; i<=32 ;i++) {
j = (0xFFFFFFFF<<i);
printf("%d %08X\n",i,j);
}
return 0;
}

こうなります
28 F0000000
29 E0000000
30 C0000000
31 80000000
32 FFFFFFFF
これは何故でしょう? コンパイラはMinGWです。
参考になるサイト等教えて頂けないでしょうか?