XOR-operatøren i Java

1. Oversigt

I denne korte vejledning lærer vi om Java XOR operatør. Vi gennemgår en smule teori om XOR operationer, og så ser vi, hvordan vi implementerer dem i Java.

2. Den XOR Operatør

Lad os begynde med en lille påmindelse om semantikken i XOR operation. Det XOR logisk betjening eller eksklusiv eller, tager to boolske operander og returnerer sandt, hvis og kun hvis operanderne er forskellige. Således returnerer den falsk, hvis de to operander har den samme værdi.

XOR operatør kan f.eks. bruges, når vi skal kontrollere to betingelser, der ikke kan være sande på samme tid.

Lad os overveje to betingelser, EN og B. Derefter viser nedenstående tabel de mulige værdier for A XOR B:

Det A XOR B drift svarer til (A OG! B) ELLER (! A OG B). Parenteser er medtaget af hensyn til klarheden, men er valgfri som OG operatøren har forrang over ELLER operatør.

3. Hvordan gør man det i Java?

Lad os nu se, hvordan vi kan udtrykke XOR drift i Java. Selvfølgelig har vi muligheden for at bruge && og || operatører, men det kan være lidt ordrig, som vi skal se.

Forestil dig en Bil klasse med to boolsk egenskaber: diesel og brugervejledning. Lad os nu sige, at vi vil fortælle, om bilen enten er diesel eller manuel, men ikke begge dele.

Lad os kontrollere dette ved hjælp af && og || operatører:

Bilbil = Car.dieselAndManualCar (); boolsk dieselXorManual = (car.isDiesel () &&! car.isManual ()) || (! car.isDiesel () && car.isManual ());

Det er lidt langt, især i betragtning af at vi har et alternativ - Java XOR operatør, repræsenteret af ^ symbol. Det er en bitvis operator - det vil sige en operator, der sammenligner de matchende bits med to værdier for at returnere et resultat. I XOR i tilfælde, hvis to bits af samme position har den samme værdi, vil den resulterende bit være 0. Ellers er den 1.

Så i stedet for vores besværlige XOR implementering, kan vi direkte bruge ^ operatør:

Bilbil = Car.dieselAndManualCar (); boolsk dieselXorManual = bil.isDiesel () ^ bil.isManuel ();

Som vi kan wee, er ^ operatør giver os mulighed for at være mere koncise i at udtrykke XOR operationer.

Endelig er det værd at nævne, at XOR operatør, som de andre bitvise operatører, fungerer med alle primitive typer. Lad os for eksempel overveje to heltal 1 og 3, hvis binære repræsentationer er henholdsvis 00000001 og 000000011. Brug derefter XOR operator mellem dem vil resultere i heltal 2:

hævder, at (1 ^ 3). er lig med (2);

Kun den anden bit er forskellig i disse to tal, derfor resultatet af XOR operator på denne bit vil være 1. Alle andre bits er identiske, og dermed deres bitvise XOR resultatet er 0, hvilket giver os en endelig værdi på 00000010 - den binære repræsentation af heltal 2.

4. Konklusion

I denne artikel lærte vi om Java XOR operatør. Vi så, at det giver en kortfattet måde at udtrykke XOR operationer.

Som normalt kan artiklens fulde kode findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found