Препоръчано, 2020

Избор На Редактора

Разлика между & и &&

И двете "&" и "&&" са операторите, използвани за оценка на условните изрази. Операторът & е ​​логичен, както и битовият оператор. Операторът && е чисто логически оператор. Основната разлика между оператора & и & е, че & операторът оценява двете страни на израза, докато операторът && оценява само лявата страна на израза, за да получи крайния резултат. Нека разберем другите разлики между & и && с помощта на таблицата за сравнение.

Сравнителна таблица

Основа за сравнение&&&
ОператорТова е "побитовият оператор".Това е "логически оператор".
оценкаТой оценява както лявата, така и дясната страна на израза.Той само оценява лявата страна на израза.
ДействаТой работи на "Булев тип данни", както и работи на "битове".Работи само на "Булев тип данни".
употребаИзползвайте, за да проверите логическото състояние и също да се използва за маскиране на определени битове, като например битове за паритет.Използва се само за проверка на логическото състояние.

Определение на & (битово и)

Този "&" оператор се използва както като логически (&) оператор, така и като битова операция. Тя работи както на булеви, така и на двоични данни. Когато & оператор се използва като логически & оператор тогава, то води до "true", ако и двете страни на изразяването на оценката са верни, иначе връща "false". Тя позволява на компилатора да оцени и двете страни на израза. Това означава, че дори ако лявата страна на израза има резултат false, тя оценява дясната страна на израза.

Позволява ни да разберем това с пример.

 int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // извежда невярно b = 5 

Тук, при оценката на лявата страна на израза (a == 6), резултатът е false, след което операторът оценява дясната страна на израза (b ++ == 6), като стойността на b нараства.

Когато "&" се използва като "битова оператор", първо се конвертират и двата операнда в двоична форма и след това се работи с него, използвайки & operator, bit-by-bit. След операцията, полученият резултат е в двоичен вид, който след това се превръща в десетичен. Всеки бит, който е 0 в един от операндите, води до 0. Ако и двата битове на операндите са 1, тогава полученият бит е 1. Побитовият и операторът се управляват от същата таблица на истината, както и от неговия логически & оператор.

Нека видим битовата операция на & operator.

 int a; а = 3 и 4; // 011 & 100 = 000 system.out.println ("a =" + a); // изход a = 0 

Тук десетичните стойности 3 и 4 първоначално се преобразуват в тяхната двоична форма и след това операторът & bitwise изпълнява операцията на тях по бит. Полученият резултат е в двоичен вид, който след това отново се преобразува в десетична форма.

Определение на && (късо съединение И)

Този оператор && работи напълно като логически оператор. Той работи само с булев тип данни. Той също се нарича оператор на късо съединение. Тъй като само проверява лявата страна на израза. Ако лявата страна на израза води до false, то тогава не се притеснява за оценката на дясната страна на израза.

Позволява ни да разберем работата на оператора && с пример.

 int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // изходна грешка b = 4 

Тук, тъй като условието (а == 6) е невярно, операторът && не оценява израза (b ++ == 6) като резултат, стойността на b не се увеличава.

Ключови разлики между & и &&

  1. Операторът & е ​​логичен, както и битовият оператор, тъй като работи както с булеви, така и с двоични данни, докато операторът && е само логически оператор, тъй като работи само с булев тип данни.
  2. Операторът оценява и двете страни на израза, за да получи крайния резултат, докато операторът && оценява само лявата страна на израза и ако се окаже невярно, той дори не оценява дясната страна на израза.

Забележка:

Докато оценявате булев тип данни, и двата оператора дават резултат “true” само ако и двата операнда са верни, иначе връща “false”.

Заключение:

И операторът &&&& и двете се използват за оценка на булевото условие, докато операторът & & се използва също и за битовата операция. Когато се изисква да се оцени и двете страни на израза, се използва и операторът, който можем да използваме && оператор.

Top