Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

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

#c #синтаксис


int y = 2, x = 3, z = 1, k;
k = y&~z; 


Как здесь получается значение 2? Как работают эти операции &~?
    


Ответы

Ответ 1



Значение y равно 2, что в двоичном представлении выражается набором битов 00..010. Значение z равно 1, что в двоичном представлении выражается набором битов 00..001. Применение операции инверсии битов ~ к значению z дает набор битов 11..110. Затем операция побитового-И & применяется к двоичным представлениям y и ~z, т.е. к 00..010 и 11..110 соответственно, что дает в результате двоичное представление 00..010. А это двоичное представление все того же 2. Отдельно стоит заметить, что побитовые манипуляции лучше производить с беззнаковыми типами, если нет специальной необходимости использовать знаковые типы.

Комментариев нет:

Отправить комментарий