- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- ~ (побитовый НЕ)
- Составные операторы
- Данные
- Типы данных
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
~ (побитовый НЕ)
Описание
Побитовый оператор НЕ в C ++ - это символ тильды ~. В отличие от & и |, побитовый оператор НЕ применяется к одному операнду после ~. Битовое НЕ меняет каждый бит на противоположный: 0 становится 1, а 1 становится 0.
0 1 операнд1
----
1 0 ~ операнд1
Пример
int a = 103; // binary: 0000000001100111
int b = ~a; // binary: 1111111110011000 = -104
Примечания
Вы можете быть удивлены, увидев в результате этой операции отрицательное число, например -104. Это связано с тем, что старший бит в переменной int является так называемым знаковым битом. Если старший бит равен 1, число интерпретируется как отрицательное.
Кроме того, для любого целого числа x, ~x будет -x - 1.
Иногда знаковый бит в целочисленном выражении со знаком может вызывать нежелательные сюрпризы.