質問です。
以下のコードを実行するとx,yがそれぞれ
00000000, 00000001になるのですが
これはどういうことなんでしょうか?
コンパイラはGCCとVS2008Expressで同じ結果でした。

unsigned int i = 32, x, y;
x = 1u << 32;
y = 1u << i;
printf("%08x %08x\n", x, y);