ИЛИ, операция И

Вопрос о новичке. Как вычислить значение формулы f B, где f - двоичная функция ИЛИ или И?

12
задан derWilly 5 January 2013 в 19:24
поделиться

8 ответов

Логическое ИЛИ - || , логическое И - && . Если вам нужно отрицание НЕ, добавьте к выражению префикс ! .

Пример:

X = (A && B) || C || !D;

Тогда X будет истинным, если либо A и B истинны, либо если C истинно, либо если D не истинно (то есть ложно).

Если вам нужно побитовое И / ИЛИ / НЕ, вы должны использовать & , | и ~ . Но если вы имеете дело с логическими значениями / значениями истины, вы не хотите их использовать. Они не обеспечивают оценку короткого замыкания, например, из-за того, как работает поразрядная операция.

17
ответ дан 2 December 2019 в 03:54
поделиться

Есть различие между условными операторами && и || и логические операторы & и |. В основном это разница в приоритете (какие операторы вычисляются первыми), а также в && и || «убегают». Это означает, что это последовательность, такая как ...

cond1 && cond2 && cond3

Если cond1 ложно, ни cond2, ни cond3 не оцениваются, поскольку код правильно предполагает, что независимо от их значения, выражение не может быть истинным. Аналогично ...

cond1 || cond2 || cond3

Если cond1 истинно, ни cond2, ни cond3 не оцениваются, поскольку выражение должно быть истинным независимо от их значения.

Поразрядные эквиваленты & и | не убегают.

Надеюсь, что это поможет.

22
ответ дан 2 December 2019 в 03:54
поделиться
if(A == "haha" && B == "hihi") {
//hahahihi?
}

if(A == "haha" || B != "hihi") {
//hahahihi!?
}
1
ответ дан 2 December 2019 в 03:54
поделиться

Я не уверен, что это ответ на ваш вопрос, но, например:

if (A || B)
{
    Console.WriteLine("Or");
}

if (A && B)
{
    Console.WriteLine("And");
}
0
ответ дан 2 December 2019 в 03:54
поделиться

Если вас интересуют побитовые операции, ищите здесь краткое руководство: http://weblogs.asp.net/alessandro/ archive / 2007/10/02 / bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx . Побитовая операция выполняет те же операции, что и приведенные выше, они просто работают с двоичным представлением (операция применяется к каждому отдельному биту значения)

Если вы хотите, чтобы логическая операция выполнялась, ответы уже даны.

0
ответ дан 2 December 2019 в 03:54
поделиться

&& эта операция возвращает истину, только если оба операнда истинны, что подразумевает

bool and(bool b1, bool b2)]
{
 if(b1==true)
 {
   if(b2==true)
    return true;
 }
 return false;
}

|| это операция return true, если один или оба операнда являются истинными, что подразумевает

bool or(bool b1,bool b2)
{
 if(b1==true)
 return true;
 if(b2==true)
 return true;
 return false;
}

, если вы пишете

y=45&&34//45 binary 101101, 35 binary 100010

, в результате у вас есть

y=32// in binary 100000

Следовательно, то, что я написал выше, используется по отношению к каждой паре битов

{{ 1}}
-1
ответ дан 2 December 2019 в 03:54
поделиться

Используйте '&&' для И и используйте '||' для ИЛИ, например:

bool A;
bool B;

bool resultOfAnd = A && B; // Returns the result of an AND
bool resultOfOr = A || B; // Returns the result of an OR
0
ответ дан 2 December 2019 в 03:54
поделиться

много ответов выше, я попробую другой способ:

если вы ищете побитовые операции, используйте только один из знаков, например:

3 & 1 //==1 - и 4 | 1 //==5 - или

-1
ответ дан 2 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: