#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. Отдельно стоит заметить, что побитовые манипуляции лучше производить с беззнаковыми типами, если нет специальной необходимости использовать знаковые типы.
Комментариев нет:
Отправить комментарий