Операнд_лівий операція_ зрушення операнд_правий
<< |
зрушення вліво бітового представлення значення лівого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда, розряди, що звільнилися, обнуляються |
>> |
зрушення управо бітового представлення значення правого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда, розряди, що звільнилися, обнуляються, якщо операнд беззнакового типа і заповнюються знаковим розрядом, якщо – знакового |
Порозрядні операції:
& |
порозрядна кон'юнкція (И) бітових представлень значень цілочисельних операндів (біт =1, якщо відповідні біти обоє операндов=1) |
| |
порозрядна диз'юнкція (АБО) бітових представлень значень цілочисельних операндів (біт =1, якщо відповідний біт один з операндов=1) |
^ |
що порозрядне виключає АБО бітових представлень значень цілочисельних операндів(біт =1, якщо відповідний біт лише одного з операндов=1) |
Операції порівняння: результатом є true( не 0) або false(0)
< |
менше, ніж |
> |
більше, ніж |
<= |
менше або рівно |
>= |
більше або рівно |
== |
Рівно |
!= |
не рівно |
Логічні бінарні операції:
&& |
кон'юнкція (І) цілочисельних операндів або стосунків, цілочисельний результат брехня(0) або істина(не 0) |
|| |
диз'юнкція (АБО) цілочисельних операндів або стосунків, цілочисельний результат брехня(0) або істина(не 0) |
Операції привласнення
=, +=, -=, += і так далі
Формат операції простого привласнення:
операнд1=операнд2
Ліводопустиме значення (L-значение) – виразу, яке адресує деяку ділянку пам'яті, тобто в нього можна занести значення. Ця назва сталася від операції привласнення, оскільки саме ліва частина операції привласнення визначає, в яку область пам'яті буде занесений результат операції. Змінна – це окремий випадок ліводопустиме вираження.
Умовна операція.
На відміну від унарних і бінарних операцій в ній використовується три операнди.
Вираз1 ? Вираз2 : Вираз3;
Першим обчислюється значення вираз1. Якщо воно достеменне, то обчислюється значення виразу2, яке стає результатом. Якщо при обчисленні виразу1 вийде 0, то як результат береться значення виразу3.
Наприклад:
x<0 ? -х : x ; //обчислюється абсолютне значення x.
Операція явного (перетворення) приведення типа.
Існує дві форми: канонічна і функціональна:
-
(ім’я_типа) операнд
-
ім’я_типа (операнд)
(int)a // канонічна форма
int(a) // функціональна форма
Вирази
З констант, змінних, роздільників і знаків операцій можна конструювати вирази. Кожне вираження є правилом обчислення нового значення.. Якщо вираження формує ціле або речове число, то воно називається арифметичним. Пара арифметичних виразів, об'єднана операцією порівняння, називається відношенням. Якщо відношення має ненульове значення, то воно – істинно, інакше – помилково.
Пріоритети операцій у виразах
Ранг |
Операції |
1 |
( ) [ ] -> . |
2 |
! ~ - ++ -- & * (тип) sizeof тип( ) |
3 |
* / % (мультиплікативні бінарні) |
|
+ - (аддитивні бінарні) |
5 |
<< >> (порозрядного зрушення) |
6 |
< > <= >= (стосунки) |
7 |
== != (стосунки) |
8 |
& (порозрядна кон'юнкція «І») |
9 |
^ (що порозрядне виключає «АБО») |
10 |
| (порозрядна диз'юнкція «АБО») |
11 |
&& (кон'юнкція «І») |
12 |
|| (диз'юнкція «АБО») |
13 |
?: (умовна операція) |
14 |
= *= /= %= -= &= ^= |= <<= >>= (операція привласнення) |
15 |
, (операція кома) |
Контрольні питання
-
З яких елементів складається природна мова? Що є аналогами цих елементів в С++?
-
Що таке лексема? Навести приклади лексем в мові С++.
-
Що таке ідентифікатор? Правила запису ідентифікаторів.
-
Що таке константа? Як константа обробляється компілятором?
-
Які типи констант існують в С++. Навести приклади констант різних типів.
-
До якого типа відносяться константи 192345, 0х56, 0хСВ, 016, 0.7865, .0045, ‘c’, “x”, one, “one”, 5, 5.?
-
Що таке тип даних?
-
Чим відрізняються типи даних: float і double, char і wchar_t, int і short int?
-
Чим відрізняються типи даних int і unsigned int?
-
Перерахувати всіх типів даних, які існують в C++. Скільки місця в пам'яті займають дані кожного типа?
-
На що впливає кількість пам'яті, що виділяється для даних певного типа?
-
Що таке змінна? Чим оголошення зміною відрізняється від її визначення? Навести приклади визначень і оголошень.
-
Що таке клас пам'яті? Які класи пам'яті існують в С++? Навести приклади оголошень і визначень змінних різних класів пам'яті.
-
Що таке вираження? З чого складається вираження?
-
Що таке операнд?
-
Які операції можна застосовувати до цілочисельних даних? До речових даних? До символьних даних?
-
Що таке відношення?
-
У якому випадку відношення вважається помилковим, а в якому – достеменним?
-
Які операції називаються унарними? Навести приклади.
-
Які операції називаються бінарними? Навести приклади.
-
Що таке тернарная операція? Навести приклад.
-
Яка різниця між постфіксною і префіксною операцією інкремента (декремента)?
-
Які операції привласнення існують в С++?
-
Навести приклади виразів, що містять операції привласнення, операції інкремента (декремента), аддитивні і мультиплікативні операції. Пояснити, як вони виконуватимуться.
-
Що таке леводопустимое значення? Навести приклад.
-
Чому дорівнюватиме значення виразів:
int z=x/y++; якщо int x=1, y=2;
int w=x%++y, якщо int x=1, y=2;
int a=++m+n++*sizeof(int); якщо int m=1, n=2;
float a=4*m/0.3*n; якщо float m=1.5; int n=5;
int ok=int(0.5*y) <short(x)++; якщо int x=10, y=3;