Shifting a value by more than its bits isn't defined and has varying behavior depending on compiler and platform