1. Bitwise &
operator
Nauna naming sinabi na ang lahat ng data ay nakaimbak sa memorya sa isang binary na representasyon. Kaya medyo matagal na ang nakalipas, ang mga programmer ay nakaisip ng maraming mga kawili-wiling paraan upang gumana sa mga binary na numero. Halimbawa, ang Java ay may mga lohikal na operator na nagpapatakbo sa mga bit ng binary na representasyon ng isang numero: &
(AT), | (OR)
, ~
(HINDI o pandagdag) at ^
(XOR - eksklusibo o).
a & b
&
(AND) operator
Ang operator na ito ay halos kapareho sa logical &
(AND) operator, tanging ito ay tinutukoy ng isang solong ampersand, hindi dalawa:
At ito ay inilapat sa mga indibidwal na bit. Ang bawat operand ay itinuturing bilang isang array ng mga bit, at ang i
ika-bit ng resulta ay kinakalkula gamit ang i
ika-bit ng bawat isa sa dalawang operand.
Ang unang bit ng resulta ay kakalkulahin batay sa unang bit ng numero a
at ang unang bit ng numero b
, ang pangalawang bit — batay sa pangalawang bit ng numero a
at pangalawang bit ng numero b
, atbp.
Ang &
(AND) operator ay nangangahulugang "ang resultang bit ay katumbas ng isa lamang kung ang katumbas na bit ng numero a
ay katumbas ng isa AND
ang katumbas na bit ng numero b
ay katumbas ng isa":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Mga halimbawa:
Halimbawa | Resulta |
---|---|
|
|
|
|
|
|
|
|
2. Bitwise |
operator
Ang operator na ito ay halos kapareho sa lohikal |
(OR) na operator, tanging ito ay tinutukoy ng isang patayong linya, hindi dalawa:
a | b
At ito ay inilapat sa mga indibidwal na bit. Ang bawat operand ay itinuturing bilang isang array ng mga bit, at ang ith bit ng resulta ay kinakalkula gamit ang ith bit ng bawat isa sa dalawang operand.
Ang bitwise |
(OR) operator ay nangangahulugang "ang resultang bit ay katumbas ng isa kung ang katumbas na bit ng numero a
ay katumbas ng isa OR
ang katumbas na bit ng numero b
ay katumbas ng isa":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Mga halimbawa:
Halimbawa | Resulta |
---|---|
|
|
|
|
|
|
|
|
Kapag ang katumbas na bits (ang mga bit sa parehong posisyon) ng parehong mga numero ay zero ay katumbas ng zero ang katumbas na bit ng resulta.
3. Bitwise ^
(XOR o "eksklusibo o") operator
Ang XOR
operator, na binibigkas din na eksklusibo o , ay tinutukoy ng ^
simbolo. Upang ilagay ito sa keyboard, pindutin ang shift + 6 (sa English na layout ng keyboard).
a ^ b
Ang operator na ito ay medyo katulad ng OR
operator, kasama na ito ay may katulad na pangalan:XOR
Ang bitwise ^
(XOR) operator ay nangangahulugang "ang resultang bit ay katumbas ng isa kung ang katumbas na bit ng numero a
ay katumbas ng isa OR
ang katumbas na bit ng numero b
ay katumbas ng isa ngunit hindi pareho sa parehong oras":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Mga halimbawa:
Halimbawa | Resulta |
---|---|
|
|
|
|
|
|
|
|
Kapag ang katumbas na bits (ang mga bit sa parehong posisyon) ng parehong mga numero ay magkaiba , ang katumbas na bit ng resulta ay katumbas ng isa . Kung ang mga bit ay pareho , ang resultang bit ay katumbas ng zero .
4. Bitwise ~
(HINDI, COMPLEMENT) operator
Sa tingin ko ay mahulaan mo na kung ano ang ginagawa nito. Ang operator na ito ay halos kapareho sa logical !
(NOT) operator, ngunit ito ay tinutukoy ng isang tilde , hindi isang tandang padamdam:
~a
Isa itong unary operator, na nangangahulugang nalalapat ito sa isang numero, hindi dalawa. Lumilitaw ito bago ang nag-iisang operand na ito.
Ang bitwise ~
operator ay nangangahulugang "ang resultang bit ay isa kung ang katumbas na bit ng numero a
ay zero, at ito ay zero kung ang katumbas na bit ng numero a
ay isa":
~1 = 0
~0 = 1
Mga halimbawa:
Halimbawa | Resulta |
---|---|
|
|
|
|
|
|
|
|
Binabago lamang ng operator na ito ang bit na 1
kay 0
at mga bit na para 0
sa 1
.
GO TO FULL VERSION