Книга: Язык программирования Си. Издание 3-е, исправленное
A7.8. Операторы сдвига
A7.8. Операторы сдвига
Операторы сдвига << и >> выполняются слева направо. Для обоих операторов каждый операнд должен иметь целочисленный тип, и каждый из них подвергается целочисленному повышению. Тип результата совпадает с повышенным типом левого операнда. Результат не определен, если правый операнд отрицателен или его значение превышает число битов в типе левого выражения или равно ему.
сдвиговое-выражение:
аддитивное-выражение
сдвиговое-выражение >> аддитивное-выражение
сдвиговое-выражение << аддитивное-выражение
Значение E1<<E2 равно значению E1 (рассматриваемому как цепочка битов), сдвинутому влево на E2 битов; при отсутствии переполнения такая операция эквивалентна умножению на 2E2. Значение E1>>E2 равно значению E1, сдвинутому вправо на E2 битовые позиции. Если E1 - беззнаковое или имеет неотрицательное значение, то правый сдвиг эквивалентен делению на 2E2, в противном случае результат зависит от реализации.
- A7.1. Генерация указателя
- A7.2. Первичные выражения
- A7.3. Постфиксные выражения
- А7.4. Унарные операторы
- A7.5. Оператор приведения типа
- A7.6. Мультипликативные операторы
- A7.7. Аддитивные операторы
- A7.8. Операторы сдвига
- A7.9. Операторы отношения
- A7.10. Операторы равенства
- A7.11. Оператор побитового И
- A7.12. Оператор побитового исключающего ИЛИ
- A7.13. Оператор побитового ИЛИ
- A7.14. Оператор логического И
- A7.15. Оператор логического ИЛИ
- А7.16. Условный оператор
- A7.17. Выражения присваивания
- A7.18. Оператор запятая
- A7.19. Константные выражения