Притом, что, как пишет PAF, «все числовые вычисления происходят в double». Уж не знаю насколько сдвиговые операции можно считать числовыми вычислениями, но путаницу явно не описанные ограничения вносят.
Остальные битовые операции тоже ограничены int'ом?