Операции отрицания в C++
Арифметическое отрицание (унарный минус - ) изменяет знак операнда целого или вещественного типа на противоположный.
Логическое отрицание (!) дает в результате значение О, если операнд есть истина (не нуль), и значение 1, если операнд равен нулю. Операнд должен быть целого или вещественного типа, а может иметь также тип указатель.
Поразрядное отрицание (~), называют побитовым, инвертирует каждый разряд в двоичном представлении целочисленного операнда.
Примеры При выполнении операции поразрядного отрицания все биты, равные 1, устанавливаются равными 0, а все биты равные нулю, устанавливаются равными 1. Для выполнения данной операции в языке С++ используется символ ‘~’ как показано в следующем примере:
unsigned char var = 153; //двоичная запись 10011001 unsigned char not = ~var; //результат 01100110 (число 102)В результате переменная not будет содержать число 102. В ходе выполнения операции поразрядного И результирующий бит будет равен 1, если оба бита в соответствующих операндах равны 1, т.е.
10010011 & 00111101 даст результат 00010001.Для выполнения операции логического И используется символ & следующим образом:
unsigned char var = 153; //двоичная запись 10011001 unsigned char mask = 0x11; // число 00010001 (число 17) unsigned char res = var & mask; // результат 00010001или
var &= mask; // то же самое, что и var = var & mask;