Мне интересно, почему операторы сдвига (<< и >>), эквивалентные умножению и делению соответственно, имеют меньший приоритет, чем аддитивный оператор, такой как "+".
Другими словами:
int a = 1 + 2 * 8; //yields 17
, тогда как:
int a = 1 + 2 << 3; //yields 24
Кто-нибудь знает, в чем причина такого поведения?
ПРИМЕЧАНИЕ: Пожалуйста, не отвечайте мне ", потому чтоспецификации говорят так "!
Заранее всем спасибо.
РЕДАКТИРОВАТЬ: Я понял, что сдвиг влево можно получить путем суммирования левого операнда сам по себе.Может быть в этом причина?