OPERATORY LOGICZNE
&& logiczne "i" AND
|| logiczne "lub" OR
! negacja logiczna NOT
Operatory logiczne operują na wartościach logicznych (prawda/fałsz).
Operator && zwraca wartość true (prawda) wtedy i tylko wtedy gdy oba argumenty mają wartość logiczną true.
Operator || zwraca true gdy przynajmniej jeden z argumentów ma wartość true.
Operator ! neguje wartość logiczną, a więc gdy argument ma wartość true to zwraca false, a gdy false to zwraca true.
a = true;
b = false;
c = a && b; //c ma wartość false
c = a || b; //c ma wartość true
OPERATORY BITOWE
Przykłady dla danych 8-bitowych Przykłady ze skryptów
~ Operator negacji
10011010 x =15410 15410
----------- ~
01100101 ~x =10110 -15510
& Operator koniunkcji bitowej ustawia dany bit na 1 gdy oba bity na danej pozycji maja wartość 1:
01011100 x =9210
10011010 y =15410
----------- &
00011000 z = x & y =2410
| Alternatywa bitowa ustawia bit na 1 gdy minimum jeden z bitów na danej pozycji ma wartość 1:
11000101 x =19710
10010001 y =14510
----------- |
11010101 z = x|y =21310
^ Różnica bitowa ustawia bit na 1 gdy tylko jeden z bitów jest 1:
10011011 x =19710
11001010 y =20210
----------- ^
01010001 z = x ^ y =8110
<< >> >>> Operatory przesunięcia bitowego operują na bitach zmiennych (przykład dla danych 16-bitowych)
|
x2 |
x10 |
x2 |
x10 |
x2 |
x10 |
x |
0000000000001110 |
14 |
0000000001111011 |
123 |
1111111111110011 |
-13 |
x << 2 |
0000000000111000 |
56 |
0000000111101100 |
492 |
1111111111001100 |
-52 |
x >> 2 |
0000000000000011 |
3 |
0000000000011110 |
30 |
1111111111111100 |
-4 |
x >>> 2 |
0000000000000011 |
3 |
0000000000011110 |
30 |
0011111111111100 |
16380 |
x >>> 3 |
0000000000000001 |
1 |
0000000000001111 |
15 |
0001111111111110 |
8190 |
Przesunięcia << i >> zachowują znak liczby, a >>> zeruje najstarszy bit i tworzy liczbę dodatnią.