1. Bitenkénti &operátor

Korábban azt mondtuk, hogy minden adat a memóriában van tárolva bináris reprezentációban. Tehát elég régen a programozók sok érdekes módszert találtak ki a bináris számokkal való munkavégzésre. Például a Java-nak vannak logikai operátorai, amelyek egy szám bináris megjelenítésének bitjein működnek: &(ÉS), | (OR), ~(NEM vagy komplementer) és ^(XOR - kizárólagos vagy).

a & b
Bitenkénti &(AND) operátor

Ez az operátor nagyon hasonlít a logikai &(AND) operátorhoz, csak egyetlen „és” jellel van jelölve, nem pedig kettővel:

És ez az egyes bitekre vonatkozik. Minden operandust bittömbként kezelünk, és az eredmény edik bitjét a két operandus edik bitje ialapján számítjuk ki .i

Az eredmény első bitje a szám első bitje a és a szám első bitje alapján kerül kiszámításra, a második bit pedig a szám második bitje  és a szám második bitje balapján stb.ab

Az &(AND) operátor azt jelenti, hogy "az eredményül kapott bit csak akkor egyenlő eggyel, ha a szám megfelelő bitje aegyenlő eggyel, ANDa szám megfelelő bitje beggyel egyenlő".

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

Példák:

Példa Eredmény
0b0011 & 0b1010
0b0010
0b1111 & 0b0000
0b0000
0b1010 & 0b0101
0b0000
0b1111 & 0b1010
0b1010

2. Bitenkénti |operátor

Ez az operátor nagyon hasonlít a logikai |(OR) operátorhoz, csak egyetlen függőleges vonal jelöli, nem pedig kettő:

a | b

És ez az egyes bitekre vonatkozik. Minden operandust bittömbként kezelünk, és az eredmény i-edik bitjét a két operandus mindegyikének i-edik bitje alapján számítjuk ki.

A bitenkénti |(OR) operátor azt jelenti, hogy "az eredményül kapott bit egyenlő eggyel, ha a szám megfelelő bitje aegyenlő eggyel, ORa szám megfelelő bitje beggyel egyenlő".

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

Példák:

Példa Eredmény
0b0011 | 0b1010
0b1011
0b1110 | 0b0000
0b1110
0b1010 | 0b0101
0b1111
0b1111 | 0b1010
0b1111

Csak akkor, ha mindkét szám megfelelő bitjei (az azonos pozícióban lévő bitek) nullák, akkor az eredmény megfelelő bitje nulla.



3. Bitenkénti ^(XOR vagy "kizárólagos vagy") operátor

Az XORoperátort, amelyet exkluzívnak is ejtnek , a szimbólum jelöli ^. A billentyűzeten történő bevitelhez nyomja meg a Shift + 6 billentyűket (angol billentyűzetkiosztáson).

a ^ b

Ez az operátor némileg hasonlít az ORoperátorhoz, többek között abban is, hogy hasonló a neve:XOR

A bitenkénti ^(XOR) operátor azt jelenti, hogy "az eredményül kapott bit egyenlő eggyel, ha a szám megfelelő bitje aegyenlő eggyel, ORa szám megfelelő bitje begyenlő eggyel, de nem mindkettővel egyszerre".

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

Példák:

Példa Eredmény
0b0011 ^ 0b1010
0b1001
0b1110 ^ 0b0000
0b1110
0b1010 ^ 0b0101
0b1111
0b1111 ^ 0b1010
0b0101

Csak akkor, ha mindkét szám megfelelő bitjei (az azonos pozícióban lévő bitek) különböznek, az eredmény megfelelő bitje egyenlő eggyel . Ha a bitek megegyeznek , az eredményül kapott bit egyenlő nullával .



4. Bitenkénti ~(NOT, COMPLEMENT) operátor

Azt hiszem, már sejtheti, mit csinál. Ez az operátor nagyon hasonlít a logikai (NOT) operátorhoz, de tilde! jelöli , nem felkiáltójel:

~a

Ez egy unáris operátor, ami azt jelenti, hogy egyetlen számra vonatkozik, nem kettőre. Ez az egyetlen operandus előtt jelenik meg.

A bitenkénti ~operátor azt jelenti, hogy "az eredményül kapott bit egy, ha a szám megfelelő bitje anulla, és nulla, ha a szám megfelelő bitje aegy".

~1 = 0
~0 = 1

Példák:

Példa Eredmény
~0b0011
0b1100
~0b0000
0b1111
~0b0101
0b1010
~0b1111
0b0000

1Ez az operátor egyszerűen megváltoztatja a -hoz tartozó biteket és a -hoz 0tartozó biteket .01