Операции увеличения и уменьшения — КиберПедия 

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Операции увеличения и уменьшения

2018-01-03 187
Операции увеличения и уменьшения 0.00 из 5.00 0 оценок
Заказать работу

Операция увеличения увеличивает значение переменной на минимальный атом. Операция уменьшения уменьшает значение переменной на минимальный атом. Операция увеличения записывается с помощью двух знаков сложения ++, операция уменьшения - с помощью двух минусов --.

Операции увеличения и уменьшения применимы для целочисленных переменных (минимальный атом равен 1) и для указателей (минимальный атом равен размеру одного элемента на который ссылается указатель). Операции увеличения и уменьшения нельзя применять к вещественным переменным.

Например, операция ++, примененная к целочисленной переменной i, увеличивает ее значение на единицу.

Операции увеличения ++ и уменьшения -- на единицу имеют префиксную и суффиксную формы. В префиксной форме операция записывается перед переменной. В суффиксной форме операция записывается после переменной:

++x; // Префиксная форма

x--; // Суффиксная форма

Если используется префиксная форма операции ++, то сначала переменная увеличивается, и только после этого ее новое значение используется в выражении. При использовании суффиксной формы значение переменной сначала используется в выражении и только затем увеличивается. Например,

int x = 5, y = 5, a, b;

a = (++x) + 2; // переменной a присваивается значение 8

b = (y++) + 2; // переменной b присваивается значение 7

Операции сравнения

Операция сравнения сравнивает два выражения. В результате вырабатывается логическое значение - 1 или 0 (истина или ложь) в зависимости от значений выражений.

Операции сравнения в Си обозначаются следующим образом:

== равно,!= не равно,

> больше, >= больше или равно,

< меньше, <= меньше или равно.

Примеры:

int res;

int x, y;

res = (x == y); // истинна, если x равно y, иначе ложь

res = (x == x); // всегда истинна

res = (2 < 1); // всегда ложь

Логические операции

В Си используются следующие логические операции:

· || логическое "или" (логическое сложение)

· && логическое "и" (логическое умножение)

·! логическое "не" (логическое отрицание)

Примеры логических выражений:

int a, b, c, d,x, y;

a = b || c; // логическое "или"

d = b && c; // логическое "и"

a =!b; // логическое "не"

a = (x == y); // сравнение в правой части

c = (x > 0) && (y!= 1); // c истинно, когда оба сравнения истинны

Самый высокий приоритет у операции логического отрицания, затем следует логическое умножение, самый низкий приоритет у логического сложения.

Побитовые логические операции

Кроме обычных логических операций, в Си имеются побитовые логические операции, которые выполняются независимо для каждого отдельного бита операндов. Определены следующие побитовые логические операции:

· & побитовое логическое умножение ("и")

· | побитовое логическое сложение ("или")

· ~ побитовое логическое отрицание ("не")

· ^ побитовое сложение по модулю 2 (исключающее "или")

Приоритеты побитовых операций в Си такие же, как у соответствующих логических операций.

Операции сдвига

Операции сдвига применяются к целочисленным переменным: двоичный код числа сдвигается вправо или влево на указанное количество позиций. Сдвиг вправо обозначается двумя символами "больше" >>, сдвиг влево - двумя символами "меньше" <<.

При сдвиге влево на k позиций младшие k разрядов результата устанавливаются в ноль. Сдвиг влево на k позиций эквивалентен умножению на число 2k.

Сдвиг вправо по-разному определяется для беззнаковых и знаковых чисел. При сдвиге вправо беззнакового числа на k позиций освободившиеся k старших разрядов устанавливаются в ноль.

При сдвиге вправо чисел со знаком происходит так называемое "расширение знакового разряда". Если число неотрицательно, т.е. старший, или знаковый, разряд числа равен нулю, то происходит обычный сдвиг, как и в случае беззнаковых чисел. Если же число отрицательное, т.е. его старший разряд равен единице, то освободившиеся в результате сдвига k старших разрядов устанавливаются в единицу. Число, таким образом, остается отрицательным.

Сдвиг вправо на k позиций соответствует целочисленному делению на число 2k. При k = 1 это соответствует делению на 2 только для отрицательных чисел, не равных -1. Для числа -1, все биты двоичного кода которого равны единице, сдвиг вправо не приводит к его изменению.

3.3.8.Операции "увеличить на", "домножить на" и т.п.

В большинстве алгоритмов при выполнении операции сложения чаще всего переменная-результат операции совпадает с первым аргументом:

x = x + y;

Здесь складываются значения двух переменных x и y, результат помещается в первую переменную x. Таким образом, значение переменной x увеличивается на значение y.

В Си существует сокращенная запись операции увеличения:

s += y;

Оператор += читается как "увеличить на".

Подобные операторы существуют для любых операций, допустимой в Си. Например, для арифметических операций +, -, *, /, % можно использовать операции

+= увеличить на

-= уменьшить на

*= домножить на

/= поделить на

%= поделить с остатком на

Для логических операций можно использовать операторы &&= и ||=.


Поделиться с друзьями:

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.