Оператор дополнения one: ~

Синтаксис

~ cast-expression

Замечания

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

Оператор ключевое слово для ~

C++ указывает compl в качестве альтернативной орфографии для ~. В C альтернативная орфография предоставляется в виде макроса в заголовке <iso646.h> . В C++альтернативная орфография является ключевое слово; <использование iso646.h> или эквивалентное <C++ ciso646> не рекомендуется. В Microsoft C++ /permissive- параметр или /Za компилятор требуется для включения альтернативной орфографии.

Пример

// expre_One_Complement_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main () {
   unsigned short y = 0xFFFF;
   cout << hex << y << endl;
   y = ~y;   // Take one's complement
   cout << hex << y << endl;
}

В этом примере новое значение, присвоенное переменной y, является дополнением до единицы значения 0xFFFF без знака, т. е. значением 0x0000.

Над целочисленными операндами выполняется восходящее приведение целого типа. Тип операнда повышен до результирующий тип. Дополнительные сведения о целочисленном продвижении см. в разделе "Стандартные преобразования".

См. также

Выражения с унарными операторами
Встроенные операторы C++, приоритет и ассоциативность
Унарные арифметические операторы