Operatory
W każdym języku programowania istnieją sposoby przypisywania zmiennym wartości, wykonywania działań matematycznych, itp. Służą do tego specjalne znaki zwane operatorami.
Znakiem który pozwala na przypisanie zmiennej wartości jest operator przypisania czyli znak "=":
int liczba;
liczba = 17;
Operatory arytmetyczne
* operator mnożenia
/ operator dzielenia
% operator dzielenia modulo
+ operator dodawania
- operator odejmowania
Bardzo podobne operatory do powyższych to:
*= pomnóż przez
/= podziel przez
%= podziel modulo przez
+= dodaj
-= odejmij
Zapis ten jest skróconym zapisem:
int liczba = 16;
liczba += 3; //to samo co: liczba=liczba+3;
liczba %= 5; //liczba ma teraz wartosc 19(mod)5 = 4
Operatory bitowe
Operatory bitowe operują na bitach zmiennych.
<< przesuń bity w lewo
>> przesuń bity w prawo
~ operator negacji bitowej
& koniunkcja bitowa
| alternatywa bitowa
^ różnica bitowa
wersje skrócone
<<= operator przypisania
>>= operator przypisania
~= operator przypisania
&= operator przypisania
= operator przypisania
^= operator przypisania
Operator przesunięcia bitów w lewo przesuwa bity w lewo o wskazaną liczbę miejsc, a puste miejsca z prawej strony uzupełnia zerami. Bity które po przesunięciu z lewej strony nie "mieszczą" się już w zmiennej są kasowane:
00011010 - bity początkowe
01101000 - bity po operacji <<2
Operator przypisania <<= działa podobnie jak np. analogicznie jak operatory "+" i "+=".
short a=3;
a <<= 1;
jest to równoważne pomnożeniu liczby przez 2^1 ponieważ przesuwamy bity o 1 pozycję w lewo a jest to system dwójkowy
Kolejnym operatorem bitowym jest operator negacji ~, który zamienia zera na jedynki,
a jedynki na zera.
001011001 - przed negacją
110100110 - po negacji (~)
Operator koniunkcji bitowej & ustawia dany bit na 1 wtedy i tylko wtedy gdy oba bity na danej pozycji maja wartość 1:
01011100
10011010
----------- &
00011000
Alternatywa bitowa | ustawia bit na 1 gdy minimum jeden z bitów na danej pozycji ma wartość 1:
11000101
10010001
----------- |
11010101
Różnica bitowa ustawia bit na 1 gdy tylko jeden z bitów jest 1:
10011011
11001010
----------- ^
01010001
Operatory logiczne
&& logiczne "i"
|| logiczne "lub"
! negacja logiczna
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.
bool a,b,c;
a = true;
b = false;
c = a && b; //c ma wartość false
c = a || b; //c ma wartość true
c = !a; //c ma wartość false
Operatory relacji
== operator porównania
!= operator nierówności
> operator większości
>= większe bądź równe
< operator mniejszości
<= mniejsze bądź równe
Operatory relacji zwracają wartości logiczne true/false (liczbowo 1/0).
Operator porównania == zwraca wartość true wtedy i tylko wtedy gdy oba argumenty mają tą samą wartość.
Operator nierówności != zwraca wartość true wtedy gdy oba argumenty różnią się co do wartości (nie są sobie równe).
Operator > (>=) zwraca wartość true wtedy pierwszy z argumentów (ten po lewej stronie :) ma wartość większą (większą bądź równą) od drugiego argumentu.
Analogicznie działają operatory < oraz <=.
int a, b;
a = 15;
b = a + 3;
bool w = a > b; //w przyjmie wartość false
w = a >= (b-3); //a teraz wartość true
BukKate