1. Побитов &
оператор
По-рано казахме, че всички данни се съхраняват в паметта в двоично представяне. Така че преди доста време програмистите измислиха много интересни начини за работа с двоични числа. Например Java има логически оператори, които оперират с битовете на двоичното представяне на числото: &
(И), | (OR)
, ~
(НЕ or допълнение) и ^
(XOR - изключително or).
a & b
&
оператор (И).
Този оператор е много подобен на логическия &
(И) оператор, само че се обозначава с един амперсанд, а не с два:
И се прилага към отделни битове. Всеки операнд се третира като масив от битове и i
th бит от резултата се изчислява с помощта на i
th бит на всеки от двата операнда.
Първият бит от резултата ще бъде изчислен на базата на първия бит на числото a
и първия бит на числото b
, вторият бит — на базата на втория бит на числото a
и втория бит на числото b
и т.н.
Операторът &
(И) означава, че "резултантният бит е equals на единица само ако съответният бит на числото a
е equals на единица, AND
съответният бит на числото b
е equals на единица":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Примери:
Пример | Резултат |
---|---|
|
|
|
|
|
|
|
|
2. Побитов |
оператор
Този оператор е много подобен на логическия |
(ИЛИ) оператор, само че се обозначава с една вертикална линия, а не с две:
a | b
И се прилага към отделни битове. Всеки операнд се третира като масив от битове и i-тият бит от резултата се изчислява с помощта на i-тия бит на всеки от двата операнда.
Побитовият |
оператор (ИЛИ) означава, че "резултантният бит е equals на едно, ако съответният бит на числото a
е equals на едно, OR
съответният бит на числото b
е equals на едно":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Примери:
Пример | Резултат |
---|---|
|
|
|
|
|
|
|
|
Само когато съответните битове (битовете на една и съща позиция) на двете числа са нула, съответният бит на резултата е equals на нула.
3. Побитов ^
(XOR or "изключително or") оператор
Операторът XOR
, който също се произнася изключителен or , се обозначава със ^
символа. За да го въведете от клавиатурата, натиснете shift + 6 (на английска клавиатурна подредба).
a ^ b
Този оператор е донякъде подобен на OR
оператора, включително в това, че има подобно име:XOR
Побитовият ^
(XOR) оператор означава, че "резултантният бит е equals на единица, ако съответният бит на числото a
е equals на единица, OR
съответният бит на числото b
е equals на единица, но не и на двете едновременно":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Примери:
Пример | Резултат |
---|---|
|
|
|
|
|
|
|
|
Само когато съответните битове (битовете на една и съща позиция) на двете числа са различни , съответният бит на резултата е equals на единица . Ако битовете са еднакви , полученият бит е equals на нула .
4. Побитов ~
оператор (NOT, COMPLEMENT).
Мисля, че вече можете да познаете Howво прави. Този оператор е много подобен на логическия !
(НЕ) оператор, но се обозначава с тилда , а не с удивителен знак:
~a
Това е унарен оператор, което означава, че се прилага за едно число, а не за две. Появява се преди този единствен операнд.
Побитовият ~
оператор означава "резултантният бит е единица, ако съответният бит на числото a
е нула, и е нула, ако съответният бит на числото a
е единица":
~1 = 0
~0 = 1
Примери:
Пример | Резултат |
---|---|
|
|
|
|
|
|
|
|
Този оператор просто променя битовете, които са 1
на 0
и битовете, които са 0
на 1
.
GO TO FULL VERSION