~ &^| + << >>
единственные операции я могу использоватьРеализация логического отрицания только поразрядными операторов (за исключением!)
Прежде чем я продолжу, это домашнее задание вопрос, я застрял на этом в течение очень долгого времени.
Мой оригинальный подход: я думал, что! X можно сделать с дополнением двух и сделать что-то с его аддитивным обратным. Я знаю, что xor, вероятно, здесь, но я действительно в недоумении, как подойти к этому.
Для справки: Я также не могу использовать условные обозначения, петли, ==
и т. Д., Только функции (побитовые), упомянутые выше.
Например:
!0 = 1
!1 = 0
!anything besides 0 = 0
Вы действительно хотите, чтобы оценить непосредственно 1 и 0, или просто логическим истинным и ложным? то есть '~ 0' приемлема как логическая истина? –
Примечание: '+' не является побитовым оператором. –
Этот вид упражнений по своей сути бессмыслен, потому что любое * использование * результата требует условного сравнения, которое по существу сравнивается с нулем. Мой ответ будет «if (var); else {/ * ваш код здесь * /} ' –