Если продвинутым типом левого операнда является int, тогда только пять младших бит правого операнда используются как расстояние сдвига. Это как если бы правый операнд подвергался поразрядному логическому оператору И и (§15.22.1) с значением маски 0x1f (0b11111). Поэтому фактически используемое расстояние сдвига всегда находится в диапазоне от 0 до 31 включительно.
Ответ 2
Значение счетчика сдвига используется по модулю 32. Таким образом, второй пример фактически совпадает с сдвигом на 0.