When you shift a value by the width of its type or more, the fill bits are undefined regardless of the architecture. In fact, two different compilers on the same architecture could differ on the value of y after these two statements:
uint32_t x = 0xDEADBEEF;
uint32_t y = x >> 32;
Last updated: 2007-02-26