Унарные арифметические операторы
Оператор унарного плюса C, арифметического отрицания, дополнения и логического отрицания обсуждаются в следующем списке.
Оператор |
Описание |
---|---|
+ |
Оператор унарного плюса, предшествующий выражению в скобках, вызывает принудительную группировку включенных операций. Он используется с выражениями, которые включают несколько ассоциативных или коммутативных бинарных операторов. Операнд должен иметь арифметический тип. Результат — значение этого операнда. В отношении целочисленного операнда выполняется восходящее приведение целого типа. Тип результата — это тип операнда более высокого уровня. |
– |
Оператор арифметического отрицания создает отрицательную форму своего операнда (дополнение двух). Операнд должен являться целочисленным значением или значением с плавающей запятой. Этот оператор выполняет обычные арифметические преобразования. |
~ |
Оператор побитового дополнения (или bitwise-NOT) создает побитовое дополнение своего операнда. Операнд должен иметь целочисленный тип. Этот оператор выполняет обычные арифметические преобразования; результат имеет тип операнда после преобразования. |
! |
Оператор логического отрицания (logical-NOT) создает значение 0, если операнд равен true (ненулевой), и значение 1, если операнд равен false (0). Результат имеет тип int. Этот операнд должен представлять собой целочисленное значение, значение с плавающей запятой или значение указателя. |
Унарные арифметические операции с указателями недопустимы.
Примеры
В следующих примерах показаны унарные арифметические операторы:
short x = 987;
x = -x;
В приведенном выше примере новое значение x является отрицательной формой 987 или –987.
unsigned short y = 0xAAAA;
y = ~y;
В этом примере новое значение, присвоенное переменной y, является дополнением до единицы значения 0xAAAA или 0x5555 без знака.
if( !(x < y) )
Если x больше или равно y, результат выражения равен 1 (true). Если x меньше y, результат равен 0 (false).