Зачем использовать & over &&?

Я знаю, что делают & и | - он оценивает обе стороны (или все условия, если их больше 2), но я не могу сказать, что использовал эти два оператора очень долгое время, я всегда использовал && и ||.

например (a != null) & (a.length == 1) будет выдавать, если мы проверяем длину a после того, как мы узнаем, что он равен нулю, и, очевидно, (a != null) && (a.length == 1) просто вернет false, если a был равен нулю, без необходимости проверять, равна ли длина a 1. Я также знаю, что есть небольшое улучшение производительности использовать && и ||, если у вас есть много условий для проверки, возвращение истинного / ложного в условии 2/100 быстрее, чем оценка всех 100, зная, что это истинно / ложно в условии 2.

В каких ситуациях потребуются одиночные & и | операнды?


person Omar.Ebrahim    schedule 15.12.2020    source источник
comment
stackoverflow.com/questions/8418295/logical-vs-bitwise   -  person Jasmeet    schedule 15.12.2020
comment
Надеюсь, что первый пример здесь ответит на ваш вопрос. от корки до корки. Просто попробуйте сначала использовать Google в следующий раз   -  person SelfishCrawler    schedule 15.12.2020
comment
Какой это язык программирования? Пожалуйста, добавьте соответствующий тег   -  person Bernardo Costa    schedule 09.06.2021


Ответы (1)


&& и || - это логическое И или ИЛИ между двумя предикатами. Вот почему это могло бы быть более эффективным, поскольку с логическим И или ИЛИ мы можем выполнить оценку короткого замыкания < / а>.

С другой стороны, & и | применяют побитовое И или ИЛИ. Это не использует оценку короткого замыкания. Обычно это используется не столько для проверки предикатов, сколько для битовых операций, таких как побитовое маскирование.

person Bar Stool    schedule 15.12.2020
comment
Великолепно спасибо - person Omar.Ebrahim; 15.12.2020