1. Bitvis &
operator
Vi har tidligere sagt, at alle data er lagret i hukommelsen i en binær repræsentation. Så for ganske lang tid siden fandt programmører op med en masse interessante måder at arbejde med binære tal på. For eksempel har Java logiske operatorer, der opererer på bits af et tals binære repræsentation: &
(AND), | (OR)
, ~
(IKKE eller komplement) og ^
(XOR - eksklusiv eller).
a & b
Denne operator minder meget om den logiske &
(AND) operator, kun den er angivet med et enkelt og-tegn, ikke to:
Og det anvendes på individuelle bits. Hver operand behandles som en matrix af bit, og den i
th bit af resultatet beregnes ved at bruge den i
th bit af hver af de to operander.
Den første bit af resultatet vil blive beregnet baseret på den første bit af tallet a
og den første bit af tallet b
, den anden bit - baseret på den anden bit af tallet a
og den anden bit af tallet b
osv.
(AND) operatoren &
betyder "den resulterende bit er kun lig med én, hvis den tilsvarende bit af tallet a
er lig med én, AND
den tilsvarende bit af tallet b
er lig med én":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
2. Bitvis |
operator
Denne operator er meget lig den logiske |
(OR) operator, kun den er angivet med en enkelt lodret linje, ikke to:
a | b
Og det anvendes på individuelle bits. Hver operand behandles som en matrix af bit, og den ith bit af resultatet beregnes ved at bruge den ith bit af hver af de to operander.
Den bitvise |
(OR) operator betyder "den resulterende bit er lig med én, hvis den tilsvarende bit af tallet a
er lig med én, OR
den tilsvarende bit af tallet b
er lig med én":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
Kun når de tilsvarende bits (bittene på samme position) af begge tal er nul, er resultatets tilsvarende bit lig med nul.
3. Bitwise ^
(XOR eller "eksklusiv eller") operator
Operatøren XOR
, også udtalt eksklusiv eller , er angivet med ^
symbolet. For at indtaste det på tastaturet skal du trykke på shift + 6 (på et engelsk tastaturlayout).
a ^ b
Denne operatør minder lidt om OR
operatøren, herunder ved at den har et lignende navn:XOR
Den bitvise ^
(XOR) operator betyder "den resulterende bit er lig med én, hvis den tilsvarende bit af tallet a
er lig med én, OR
den tilsvarende bit af tallet b
er lig med én, men ikke begge på samme tid":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
Kun når de tilsvarende bits (bittene på samme position) af begge tal er forskellige , er resultatets tilsvarende bit lig med en . Hvis bitsene er de samme , er den resulterende bit lig med nul .
4. Bitvis ~
(IKKE, KOMPLEMENT) operator
Jeg tror, du allerede kan gætte, hvad det gør. Denne operator ligner meget den logiske !
(NOT) operator, men den er angivet med en tilde , ikke et udråbstegn:
~a
Dette er en unær operator, hvilket betyder, at den gælder for et enkelt tal, ikke to. Det vises før denne enkelte operand.
Den bitvise ~
operator betyder "den resulterende bit er én, hvis den tilsvarende bit af tallet a
er nul, og den er nul, hvis den tilsvarende bit af tallet a
er én":
~1 = 0
~0 = 1
Eksempler:
Eksempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
Denne operator ændrer simpelthen den bit, der skal 1
til 0
, og bits, der 0
skal 1
.
GO TO FULL VERSION