Числови типове данни. Основни операции в СC++ Печат

Числови типове данни. Основни операции в С/C++. Видове, приоритет, ред за обработване на операндите, преобразуване на типове. Присвояване - единично и верижно.

1. Оператори:

а) оператор за присвояване  - "="

променлива = стойност;

Пример:

a=5;

x=0;

a=b;

За разлика от други езици за програмиране операторът за присвояване в C++ връща стойност:

Пример:

a = 2 + (b = 5);

е еквивалентно на:

b = 5;

a = 2 + b;

Пример:

a = b = c = 5; - това присвояване се нарича верижно

б) аритметични оператори:

събиране "+"

изваждане "-"

умножение "*"

деление "/"

остатък при деление "%"

Примери:

a = 2+10;

b = c - 1;

d = b * 101;

e = 5/2;

x = 5 % 2; 

в) унарни оператори - "++", "--"

a++; - еквивалентно на a = a+1;

b--; - еквивалентно на b = b-1;

г) съставни оператори ( +=, -=, *=, /=, %=, >>=, &=, ^=, |= )

Примери:

a += 1;   - еквивалентно на a = a+1

b - = 1;   - еквивалентно на b = b-1

a *= 2;   - еквивалентно на a = a*2

b / = 2;   - еквивалентно на b = b/2

д) оператори за сравнение - резултатът от тяхното изпълнение е лъжа или истина:

== - равно;

!= - различно

> - по-голямо

< - по-малко

>= по-голямо или равно

<= по-малко или равно

Примери:

(7 == 5) - false

(5>4) - true

(3!=2) - true

(6>=6) - true

(5<5) - false

е) логически оператори

! - логическо "не" (NOT)

&& - логическо "и" (AND)

|| - логическо "или" (OR)

Примери:

!(5==5) - false

Taблица на истинност за логическите функции (приемаме, че 0 - лъжа, 1 - истина):

a

b

AND

OR

0

0

0

0

0

1

0

1

1

0

0

1

1

1

1

1

Пример:

( (5 == 5) && ( 3> 6) ) - връща стойност false

( (5 == 5) || ( 3> 6) ) - връща стойност true

ж) оператор за условие (?)

условие ? резултат1 : резултат2 - ако резултатът от условието е истина се изчислява резултат1, а ако е лъжа - изчислява се резултат2

Пример:

7 = = 5 ? 4 : 3  - условието не е вярно, затова изразът връща 3

7 = = 5+2 ? 4 : 3 - условието е вярно, затова изразът връща 4

a > b ? a : b - връща като стойност по-голямото от двете числа а и b

з) побитови операции:

& - И                                                               |  - ИЛИ

 

а

b

а&b

0

0

0

0

1

0

1

0

0

1

1

1

 

 

 

 

 

 

 

 

 

 

 





^ - Изключващо ИЛИ                                                       ~ - НЕ

а

b

а^b

0

0

0

0

1

1

1

0

1

1

1

0

 

 

 

 

 

<< - преместване наляво с 1 разряд

>> - преместване надясно с 1 разряд

Пример:

Нека а=195 (10)-> 11000011 (2)

b=87 (10)  -> 01010111 (2)

c=a&b     -> 01000011 (2)

2. Приоритет на операциите

Нека е даден изразът: а = 5 + 7 % 2

На колко ще бъде равна променливата а след като се извърши действието?

а = 5 + (7 % 2) ;   а = 6;

Приоритет

Оператор

Описание

Асоциативност

1

::

област на видимост

лява

2

()  []  ->

 

лява

3

++  --

увеличаване/намаляване

дясна

 

~

побитово отрицание

 

 

!

отрицание

 

 

&  *

адрес и стойност

 

 

(тип)

преобразуване на тип

 

4

*  /  %

аритметични операции

лява

5

+ -

аритметични операции

лява

6

побитово преместване

лява

7

=

оператори за сравнение

лява

8

==  !=

оператори за сравнение

лява

9

&  ^  |

побитови операции

лява

10

&&  ||

логичски операции

лява

11

?:

условие

лява

12

= += -= *= /= %= >>= <<= &= ^= |=

присвояване

дясна

13

,

запетая

лява

3. Преобразуване на типове:

а) явно преобразуване

int i;
float f=3.14;
i = (int) f;
или i= int (f);

б) неявно преобразуване

int i;
printf("%f",3.14*2);
sizeof ( променлива или тип ) - връща броя на байтовете на променливата

Пример:
a = sizeof ( char ); - връща стойност 1