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
&
(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 i
th biten av resultatet beregnes ved å bruke den i
th 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 b
osv.
(AND) -operatoren &
betyr "den resulterende biten er lik én bare hvis den tilsvarende biten av tallet a
er lik én, AND
den tilsvarende biten av tallet b
er lik én":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
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 a
er lik én, OR
den tilsvarende biten av tallet b
er lik én":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
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å OR
operatø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 a
er lik én, OR
den tilsvarende biten av tallet b
er lik én, men ikke begge samtidig":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
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 a
er null, og den er null hvis den tilsvarende biten av tallet a
er én":
~1 = 0
~0 = 1
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
Denne operatoren endrer ganske enkelt bitene som skal 1
til 0
og bitene som 0
skal 1
.
GO TO FULL VERSION