1. Побитов &оператор
По-рано казахме, че всички данни се съхраняват в паметта в двоично представяне. Така че преди доста време програмистите измислиха много интересни начини за работа с двоични числа. Например Java има логически оператори, които оперират с битовете на двоичното представяне на числото: &(И), | (OR), ~(НЕ or допълнение) и ^(XOR - изключително or).
a & b
&оператор (И).
Този оператор е много подобен на логическия &(И) оператор, само че се обозначава с един амперсанд, а не с два:
И се прилага към отделни битове. Всеки операнд се третира като масив от битове и ith бит от резултата се изчислява с помощта на ith бит на всеки от двата операнда.
Първият бит от резултата ще бъде изчислен на базата на първия бит на числото 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