1. Bitvis &operator

Vi har tidligere sagt at all data er lagret i minnet i en binær representasjon. Så for ganske lenge siden kom programmerere opp med mange interessante måter å jobbe med binære tall på. For eksempel har Java logiske operatorer som opererer på bitene av et talls binære representasjon: &(AND), | (OR), ~(IKKE eller komplement) og ^(XOR - eksklusiv eller).

a & b
Bitvis &(AND) operator

Denne operatoren er veldig lik den logiske &(AND) operatoren, bare den er angitt med et enkelt og-tegn, ikke to:

Og det brukes på individuelle biter. Hver operand behandles som en rekke biter, og den ith biten av resultatet beregnes ved å bruke den ith biten til hver av de to operandene.

Den første biten av resultatet vil bli beregnet basert på den første biten av tallet a og den første biten av tallet b, den andre biten – basert på den andre biten av tallet a og den andre biten av tallet bosv.

(AND) -operatoren &betyr "den resulterende biten er lik én bare hvis den tilsvarende biten av tallet aer lik én, ANDden tilsvarende biten av tallet ber lik én":

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

Eksempler:

Eksempel Resultat
0b0011 & 0b1010
0b0010
0b1111 & 0b0000
0b0000
0b1010 & 0b0101
0b0000
0b1111 & 0b1010
0b1010

2. Bitvis |operator

Denne operatoren er veldig lik den logiske |(OR) operatoren, bare den er angitt med en enkelt vertikal linje, ikke to:

a | b

Og det brukes på individuelle biter. Hver operand behandles som en matrise med biter, og den ith-biten av resultatet beregnes ved å bruke den ith-biten til hver av de to operandene.

Den bitvise |(OR) operatoren betyr "den resulterende biten er lik én hvis den tilsvarende biten av tallet aer lik én, ORden tilsvarende biten av tallet ber lik én":

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

Eksempler:

Eksempel Resultat
0b0011 | 0b1010
0b1011
0b1110 | 0b0000
0b1110
0b1010 | 0b0101
0b1111
0b1111 | 0b1010
0b1111

Bare når de tilsvarende bitene (bitene i samme posisjon) av begge tallene er null, er resultatets tilsvarende bit lik null.



3. Bitvis ^(XOR eller "eksklusiv eller") operator

Operatøren XOR, også uttalt eksklusiv eller , er merket med ^symbolet. For å legge det inn på tastaturet, trykk shift + 6 (på et engelsk tastaturoppsett).

a ^ b

Denne operatøren ligner litt på ORoperatøren, inkludert ved at den har et lignende navn:XOR

Den bitvise ^(XOR) operatoren betyr "den resulterende biten er lik én hvis den tilsvarende biten av tallet aer lik én, ORden tilsvarende biten av tallet ber lik én, men ikke begge samtidig":

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

Eksempler:

Eksempel Resultat
0b0011 ^ 0b1010
0b1001
0b1110 ^ 0b0000
0b1110
0b1010 ^ 0b0101
0b1111
0b1111 ^ 0b1010
0b0101

Bare når de tilsvarende bitene (bitene i samme posisjon) av begge tallene er forskjellige , er resultatets tilsvarende bit lik en . Hvis bitene er like , er den resulterende biten lik null .



4. Bitvis ~(IKKE, KOMPLEMENT) operator

Jeg tror du allerede kan gjette hva den gjør. Denne operatoren er veldig lik den logiske !(NOT) operatoren, men den er angitt med en tilde , ikke et utropstegn:

~a

Dette er en unær operator, noe som betyr at den gjelder et enkelt tall, ikke to. Den vises før denne enkeltoperanden.

Den bitvise ~operatoren betyr "den resulterende biten er én hvis den tilsvarende biten av tallet aer null, og den er null hvis den tilsvarende biten av tallet aer én":

~1 = 0
~0 = 1

Eksempler:

Eksempel Resultat
~0b0011
0b1100
~0b0000
0b1111
~0b0101
0b1010
~0b1111
0b0000

Denne operatoren endrer ganske enkelt bitene som skal 1til 0og bitene som 0skal 1.