BitwiseXorNot

Материал из MK90.ORG wiki
Перейти к:навигация, поиск

Справка Язык | Библиотеки | Сравнение | Изменения

Побитовое НЕ (~)

Описание

Оператор побитового отрицания в C++ записывается с помощью символа тильды ~. В отличие от & и |, оператор побитового НЕ применяется только к одному операнду, который записывается справа. Побитовое НЕ изменяет каждый бит операнда на противоположный: 0 становится 1, а 1 становится 0. Например:

   0  1    операнд1
  ----------
   1  0   ~операнд1

int a = 103;    // в двоичном виде:  0000000001100111
int b = ~a;     // в двоичном виде:  1111111110011000 = -104

Не смущайтесь, если увидите отрицательный результат такой операции, например -104. Это происходит из-за изменения старшего бита переменной, который также по совместительству хранит знак (для знаковых целочисленных типов). Если в нем записана единица, число считается отрицательным. Такое представление называется дополнительным кодом, подробную статью с описанием можно найти в Википедиии. В качестве краткого пояснения, обратим внимание, что для любого целого x, ~x - тоже самое, что -x-1.

Руководство по Wiring


Исправления, пожелания и новые статьи должны быть опубликованы через Форум.

Оригинальные тексты руководств и переводы распространяются Arduino и MK90 на условиях лицензии Creative Commons Attribution-ShareAlike 3.0 License. Примеры исходных кодов и ссылки являются общественным достоянием.