A>Спеку читал, про использование остатка от деления на 32 для правого операнда ничего нет
A>http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.19
Прикольно, запостил, перечитал спеку ещё раз и нашёл
If the promoted type of the left-hand operand is int, only the five lowest-order bits of the right-hand operand are used as the shift distance.
Наверное, глаза и мозг 32 искали и подлянку с five lower bits не засек