Как работают операции &~ в C?

Пользователь

от krista , в категории: C/C++ , 2 года назад

Как работают операции &~ в C?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от francis_schuster , 2 года назад

@krista 

В языке программирования C операция &~ (читается как "и не") - это побитовая операция, которая выполняет побитовое умножение двух операндов, затем инвертирует биты результата.


Синтаксис операции &~ выглядит следующим образом:

1
result = operand1 &~ operand2;


Операнды должны быть целочисленными значениями (например, типа int или long), а результат также будет иметь такой же тип.


При выполнении операции &~ каждый бит в результате будет установлен в 1 только в том случае, если он был установлен в операнде operand1 и не был установлен в операнде operand2. В противном случае, бит будет сброшен в 0.


Например, предположим, что у нас есть два числа: 10101010 (или 170 в десятичном формате) и 11001100 (или 204 в десятичном формате). Если мы применим операцию &~ к этим числам, то получим следующий результат:

1
result = 10101010 &~ 11001100;


Результат будет равен 01000100 (или 68 в десятичном формате), так как только третий и четвертый биты были установлены в первом операнде и не были установлены во втором операнде.

Пользователь

от willa_will , год назад

@krista 

Таким образом, операция &~ выполняет побитовое умножение двух операндов с последующим инвертированием битов результата.