Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Мультипликативные операции.
* – умножение операндов арифметического типа. / – деление операндов арифметического типа. При целочисленных операндах абсолютное значение результата округляется до целого. Например: 20/3 равно 6, –20/3 равно –6, (–20)/3 равно –6, 20/(–3) равно –6. % – получение остатка от деления целочисленных операндов (деление по модулю). При неотрицательных операндах остаток положительный. В противном случае остаток определяется реализацией. В компиляторе Turbo С у результата знак делимого: 13%4 равняется 1, (–13)%4 равняется –1; 13%(–4) равно +1, (–13)%(–4) равняется –1. При ненулевом делителе для целочисленных операндов всегда выполняется соотношение (a/b)*b+a%b равно а. Чтобы результат выполнения арифметической операции был вещественным, необходимо, чтобы вещественным был хотя бы один из операндов. Например, значением выражения 5.0/2 будет 2.5, что соответствует смыслу обычного деления.
Операции сдвига (определены только для целочисленных операндов). Формат < операнд_левый> < операция_сдвига> < операнд_правый> < < – сдвиг влево битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда. > > – сдвиг вправо битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда. E1> > E2, Е2 – число битов сдвига. Результат не определен, если: Е2< 0; значение Е2 > = размера Е1 в битах. E1> > E2 эквивалентно Е1 / (2E2) E1< < E2 эквивалентно Е1 * 2E2 Пример: 4< < 2 равняется 16. двоичный код для 4 равен 100, 5> > 1 равняется 2. двоичный код для 5 – это 101. При сдвиге влево на две позиции код 100 становится равным 10000 (десятичное значение равно 16). Остальные результаты операций сдвига могут быть прослежены аналогично. Обратите внимание, что сдвиг влево на n позиций эквивалентен умножению значения на , а сдвиг кода вправо уменьшает соответствующее значение в раз с отбрасыванием дробной части результата (Поэтому 5> > 1 равно 2).
|