Твой код содержит Undefined Behavior. In any case, if the value of the right operand is negative or is greater or equal to the number of bits in the promoted left operand, the behavior is undefined.
Не стоит допускать сдвига на полное число бит типа левого операнда.
Кирилл Жиляев, у тебя неполная информация в комментарии.
Что такое 16? Ты вместо 32 бит указал сдвиг на 16 вправо? И какой у тебя результат для обоих значений?
Почему бы тебе не переключиться в отображение шестнадцатиричного представления значений и посмотреть какие биты в числах подняты?