Doporučená, 2024

Redakce Choice

Rozdíl mezi & a &&

Obě „&“ a „&&“ jsou operátory, které se používají k vyhodnocení podmíněných příkazů. Operátor je logickým i bitovým operátorem. Operátor && je čistě logický operátor. Základní rozdíl mezi operátorem & a && je ten, že operátor & hodnotí obě strany výrazu, zatímco operátor && vyhodnocuje pouze levou stranu výrazu, aby získal konečný výsledek. Rozumíme ostatním rozdílům mezi & a && pomocí srovnávací tabulky.

Srovnávací graf

Základ pro porovnání&&&
OperátorJedná se o "bitového operátora".Je to "logický operátor".
HodnoceníVyhodnocuje levou i pravou stranu výrazu.Vyhodnocuje pouze levou stranu výrazu.
Pracuje dálPracuje na "Boolean datatype" stejně jako pracuje na "bitech".Funguje pouze na "Boolean datatype".
PoužitíSlouží ke kontrole logických podmínek a také k maskování určitých bitů, například paritních bitů.Používá se pouze ke kontrole logického stavu.

Definice & (Bitové AND)

Tento operátor "&" se používá jako logický (&) operátor i bitový operátor. Pracuje na booleovských i binárních datech. Když je operátor používán jako logický a operátor, pak má za následek „true“, pokud jsou obě strany výrazu true, jinak vrátí „false“. To umožňuje kompilátoru vyhodnotit jak stranu výrazu. To znamená, že i když je levá strana výrazu výsledkem false, vyhodnotí pravou stranu výrazu.

Umožňuje nám to pochopit s příkladem.

 int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // výstup false b = 5 

Při vyhodnocování levé strany výrazu (a == 6) je výsledkem false, operátor & pak vyhodnocuje pravou stranu výrazu (b ++ == 6) jako výsledek, hodnota b se zvyšuje.

Když se '&' používá jako „bitový operátor“, nejprve převede oba operandy do binárního tvaru a pak na něm pracuje pomocí operátoru, bit-by-bit. Po operaci je získaný výsledek v binární podobě, která je poté převedena na desetinné místo. Jakýkoli bit, který je 0 v jednom z operandů, má za následek 0. Pokud oba bity operandů jsou 1, pak výsledný bit je 1. Bitový bit a operátor je řízen stejnou tabulkou pravdivosti jako její logický & operátor.

Podívejme se na bitovou operaci & operátora.

 int a; a = 3 a 4; // 011 & 100 = 000 system.out.println ("a =" + a); // výstup a = 0 

Zde jsou desetinná hodnota 3 a 4 zpočátku převedena do binární podoby a operátor bit bit po nich provede operaci & bit. Získaný výsledek je v binární podobě, která je pak znovu převedena na desítkovou formu.

Definice && (zkrat a AND)

Tento operátor pracuje jako logický operátor. Pracuje pouze na booleovském datovém typu. Také se nazývá zkratový operátor. Kontroluje pouze levou stranu výrazu. Pokud má levá strana výrazu hodnotu false, pak se neobtěžuje vyhodnocovat pravou stranu výrazu.

Umožňuje nám pochopit práci operátora && s příkladem.

 int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // výstup false b = 4 

Zde je podmínka (a == 6) nepravdivá, operátor && nehodnotí výraz (b ++ == 6), hodnota b se nezvyšuje.

Klíčové rozdíly mezi & a &&

  1. Operátor je logický i bitový operátor, protože pracuje jak na booleovských, tak na binárních datech, zatímco operátor && je pouze logickým operátorem, protože pracuje pouze na booleovském datovém typu.
  2. Operátor & vyhodnocuje obě strany výrazu, aby získal konečný výsledek, zatímco operátor && vyhodnocuje pouze levou stranu výrazu & pokud se zobrazí nepravdivý, nevyhodnocuje ani pravou stranu výrazu.

Poznámka:

Při vyhodnocování booleovského datového typu mají oba operátoři za následek „true“ pouze tehdy, jsou-li oba operandy pravdivé, jinak vrátí „false“.

Závěr:

Operátor & a &&, oba jsou používány pro vyhodnocení booleovské podmínky, zatímco operátor & je také použit pro bitovou operaci. Pokud požadujeme zhodnotit jak stranu výrazu, tak i operátor, můžeme použít operátor &&.

Top