Care este diferența principală între un operator logic și un operator cu biți?


Răspunsul 1:

Permiteți-mi să vă explic acest lucru cu un exemplu pe măsură ce am avut înțelegerea mea

Ampersandul unic „&” poate fi spus ca operator „Bit-Înțelept ȘI” și „Amprenta dublă” && ”poate fi menționat ca operator„ Logic ȘI ”. Același lucru este valabil și pentru operatorul OR ("|" / "||")

 

Permiteți-mi să folosesc fragmentul de mai jos pentru explicații (Utilizarea sintagmelor din Javascript)

Utilizarea operatorului logic AND ::

var num1 = 10;

var num2 = ++ num1; // valoarea pentru num1 = 11, num2 = 11 ca valoare numerală incrementare pre1 și care este atribuită num2

if (num1> 11 && num1 == num2)

{

// Efectuați Task

}

Aici prima expresie este num1> 10 evaluează FALSE

A doua expresie num1 == num2 este ADEVĂRAT

Când se utilizează &&, prima expresie, adică num1> 10, este evaluată la FALSE (pentru valorile booleane) și așa cum știm în AND, toată condiția trebuie evaluată la TRUE, astfel încât prima condiție în sine este evaluată la FALSE, astfel încât LOGIC ȘI nu evaluați cealaltă condiție aici Second Expression, adică num1 == num2 și se mută din Block. În cazul în care prima condiție a fost evaluată ADEVĂRAT, logic și AND ar fi evaluat și a doua condiție pentru a decide dacă expresia evaluează TRUE sau FALSE.

Aceasta este și denumită, de asemenea, evaluare în scurtcircuit, care returnează rezultatele imediat ce orice condiție din expresie nu respectă regulile operatorului.

Folosirea operatorului AND-bit-bit ::

var num1 = 10;

var num2 = ++ num1; // valoarea pentru num1 = 11, num2 = 11 ca valoare numerală incrementare pre1 și care este atribuită num2

 

if (num1> 10 & num1 == num2)

{

// Efectuați Task

}

Aici prima expresie este num1> 10 evaluează FALSE

A doua expresie num1 == num2 este un ADEVĂRAT

Când & este utilizat, prima expresie, adică num1> 10 este evaluată, Aici, în evaluare, evaluează num1 în binar (adică 0 și 1) adică 1011> 1011 și returnează FALSE, apoi calculează a doua condiție 1011 == 1011 returnează TRUE și apoi evaluează valorile booleane FALSE & TRUE și apoi returnează rezultatul ca FALSE.

Așadar, în operatorul de biți scurti va evalua expresia completă pentru operator și apoi va calcula Rezultatul.


Răspunsul 2:

Operatorii cu bituri își tratează operanzii ca pe o secvență de 32 de biți, mai degrabă decât ca cifre zecimale, hexadecimale sau octale. ... Operatorii cu bitum își efectuează operațiunile pe astfel de reprezentări binare, dar returnează valori numerice standardJavaScript.

Pentru a afla JavaScript pentru vizită gratuită

Aflați Operatorul logic și operatorul Bitwise


Răspunsul 3:

Să începem cu similitudini care presupun că vă confundă. Operatorii logici și bitabili au aceeași logică. Să începem cu operatorul logic.

Operator logic

Să presupunem că avem următoarele două afirmații

"2>3twoisgreaterthatthree"whichisobviouslyfalse(otherwiseyouhaveproblemswithbasicalgebraorliveinanotherworld)."[math]2>1[/math]twoisgreaterthanone"."2 > 3 - two is greater that three" which is obviously false (otherwise you have problems with basic algebra or live in another world)."[math]2 > 1[/math] - two is greater than one".

Să le adăugăm un anumit operator logic, de exemplu, „și”.

3 &̲& [math]2 > 1[/…" style="color:#cc0000">" 2 > 3 && [math]2 > 1[/math] - two is greater than three and two is greater than one" - this statement is false because first one is false. It is like "it's snowing and sunny" which is absurd.Let's extend this logic to bitwise operators.

Operatori pe bit

Alldatainacomputerisrepresentedinbinarynumbers(reasonsforthatarebeyondofthescopeofthisquestion).Sounlikewepeoplewhohavedigitsfrom0to9,computerhasonly0and1.Conversionissimple(Iwontshowfulldetailsonthat).Forexample,supposewewanttoconvert5tobinary.Indecimalnotation,5is(5100).Toconvertittobinary,thatbaseinnotationmustbetwo.So,using2s,wehaveAll data in a computer is represented in binary numbers (reasons for that are beyond of the scope of this question). So unlike we people who have digits from 0 to 9, computer has only 0 and 1. Conversion is simple (I won't show full details on that). For example, suppose we want to convert 5 to binary. In decimal notation, 5 is (5 \cdot 10^0). To convert it to binary, that base in notation must be two. So, using 2's, we have

5=122+021+120orshortly101.5 = 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0or shortly 101.

Să presupunem că

1 - True0 - False

Să aplicăm logica operatorului logic (scuze pentru tautologie) la numere binare. Să presupunem că avem două numere binare 101 (care este 5) și 001 (care este 1). Să-i aplicăm „și”.

 101
& 001
----
 001

De ce este asta? Să o facem cifră după cifră. Pornind de la cea mai dreaptă (ca în algebra de bază), avem 1 & 1. În logica operatorului logic, dacă ambele enunțuri sunt adevărate, întreaga expresie este adevărată sub "și". Deci 1 și 1 este adevărat, care este 1. Următorul avem 0 și 0. Ambele afirmații sunt false, la fel și rezultatul. 0 & 0 = 0. Aplicând aceeași logică, 1 & 0 reprezintă 0.Catenând totul, avem 001.

Ambele tipuri de operatori folosesc aceleași principii, dar operatorii logici se ocupă de declarații. În schimb, operatorii se ocupă cu reprezentări binare ale datelor. Aceasta este diferența principală.


Răspunsul 4:

Să începem cu similitudini care presupun că vă confundă. Operatorii logici și bitabili au aceeași logică. Să începem cu operatorul logic.

Operator logic

Să presupunem că avem următoarele două afirmații

"2>3twoisgreaterthatthree"whichisobviouslyfalse(otherwiseyouhaveproblemswithbasicalgebraorliveinanotherworld)."[math]2>1[/math]twoisgreaterthanone"."2 > 3 - two is greater that three" which is obviously false (otherwise you have problems with basic algebra or live in another world)."[math]2 > 1[/math] - two is greater than one".

Să le adăugăm un anumit operator logic, de exemplu, „și”.

3 &̲& [math]2 > 1[/…" style="color:#cc0000">" 2 > 3 && [math]2 > 1[/math] - two is greater than three and two is greater than one" - this statement is false because first one is false. It is like "it's snowing and sunny" which is absurd.Let's extend this logic to bitwise operators.

Operatori pe bit

Alldatainacomputerisrepresentedinbinarynumbers(reasonsforthatarebeyondofthescopeofthisquestion).Sounlikewepeoplewhohavedigitsfrom0to9,computerhasonly0and1.Conversionissimple(Iwontshowfulldetailsonthat).Forexample,supposewewanttoconvert5tobinary.Indecimalnotation,5is(5100).Toconvertittobinary,thatbaseinnotationmustbetwo.So,using2s,wehaveAll data in a computer is represented in binary numbers (reasons for that are beyond of the scope of this question). So unlike we people who have digits from 0 to 9, computer has only 0 and 1. Conversion is simple (I won't show full details on that). For example, suppose we want to convert 5 to binary. In decimal notation, 5 is (5 \cdot 10^0). To convert it to binary, that base in notation must be two. So, using 2's, we have

5=122+021+120orshortly101.5 = 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0or shortly 101.

Să presupunem că

1 - True0 - False

Să aplicăm logica operatorului logic (scuze pentru tautologie) la numere binare. Să presupunem că avem două numere binare 101 (care este 5) și 001 (care este 1). Să-i aplicăm „și”.

 101
& 001
----
 001

De ce este asta? Să o facem cifră după cifră. Pornind de la cea mai dreaptă (ca în algebra de bază), avem 1 & 1. În logica operatorului logic, dacă ambele enunțuri sunt adevărate, întreaga expresie este adevărată sub "și". Deci 1 și 1 este adevărat, care este 1. Următorul avem 0 și 0. Ambele afirmații sunt false, la fel și rezultatul. 0 & 0 = 0. Aplicând aceeași logică, 1 & 0 reprezintă 0.Catenând totul, avem 001.

Ambele tipuri de operatori folosesc aceleași principii, dar operatorii logici se ocupă de declarații. În schimb, operatorii se ocupă cu reprezentări binare ale datelor. Aceasta este diferența principală.