Работает ли оператор NOT, если (! Value), так же, как в булевой алгебре / логике высказываний?

Этот вопрос касается понимания того, как язык интерпретирует операторы if. я знаю это if(a) проверяет правдивость a,

Однако, когда мы используем оператор NOT, например:

if (!a) {
    ...
}

Работает ли он так же, как оператор NOT в булевой алгебре, т.е.

----------
| a | !a |
----------
| T |  F |
| F |  T |
----------

и все еще проверять на правдивость, или это меняет условие успеха на ложное?

Это несущественно во всех случаях, так как это приведет к тому, что независимо от реализации произойдет одно и то же, но я чувствую, что это помогло бы мне писать лучше, если заявления / лучше их понимают.

Например, если мы посмотрим на следующее утверждение if:

if (!(a && b))

и таблица правды:

----------------------------
| a | b | a & b | !(a & b) |
----------------------------
| T | T |   T   |     F    |
| T | F |   F   |     T    |
| F | T |   F   |     T    |
| F | F |   F   |     T    |
----------------------------

Мы можем видеть, что это немного сложнее - поэтому, зная, могу ли я всегда полагаться на таблицу истинности, чтобы обеспечить надлежащую функциональность моего оператора if, я бы сильно запутался.

Чтобы попытаться угадать, я предполагаю, что условие успеха всегда trueи что оператор NOT работает точно так же, как оператор NOT логических алгебр, просто инвертируя текущее значение.

Это правильно?

Благодарю.

1 ответ

Логическое НЕ:

"!" Оператор возвращает true, когда рассматриваемое условие не выполняется. В противном случае возвращается false.

Например,

 !A returns true if A is false, i.e. when A=0.

Он всегда меняет логическое состояние своего операнда. Если условие истинно, то оператор Логический НЕ сделает его ложным.

Другие вопросы по тегам