OPERATORY w CPP2.DOC

(33 KB) Pobierz
Operatory

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

Zgłoś jeśli naruszono regulamin