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 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 |
|---|---|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
|
|
|
|
|
|
Denne operatoren endrer ganske enkelt bitene som skal 1til 0og bitene som 0skal 1.
GO TO FULL VERSION