Міністерство освіти і науки україни Національний університет «Львівська політехніка» Кафедра «Телекомунікації»
Логічні і побітові операції та вирази мови с
Методичні вказівки до лабораторної роботи з дисципліни
«Інформатика телекомунікаційних систем та мереж, ч.IІ»
для студентів базового напряму 6.0924
«Телекомунікації»
Затверджено
на засіданні кафедри «Телекомунікації»
Національного університету
«Львівська політехніка»,
протокол №___ від______2009 р.
Львів 2009
МЕТА РОБОТИ: дослідити властивості операцій порівняння, логічних і побітових мови програмування С.
Попередні відомості.
Операції порівняння – бінарні, причому обидва операнди повинні бути арифметичного типу, або вказівниками. Результат цілочисельний: 0 (хибність) або 1 (істинність). Тип результату int.
вираз < вираз
вираз > вираз
вираз <= вираз
вираз >= вираз
Операції рівності і нерівності відносять до цієї ж групи. Важливо правильно витримувати синтаксис знаку «логічне дорівнює» - ця операція не виконує присвоювання:
вираз == вираз
вираз != вираз
Результатом цих операцій є 0, якщо задане відношення хибне, і 1, якщо істинне. Тип результату int. Ці операції мають нижчий пріоритет, ніж операції попередньої групи, наприклад, у виразі a < b = = c < d спочатку здійснюються порівняння a < b та c < d, результати кожного з них мають значення 0 або 1, після чого операція = = дає результат 0 або 1.
Для логічних операцій характерне те, що і операнди, і результат мають цілий тип і трактуються як логічні (“Так” – 1, “Ні” – 0).
Операція логічне І виконується згідно таблиці істинності:
X |
Y |
X&&Y |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Ця операція повертає 1, якщо обидва операнди ненульові, та 0 в противному випадку. Операція гарантує обчислення зліва направо, а якщо лівий операнд є 0, правий не обчислюється. Операнди не повинні бути обов'язково однакового типу, але повинні мати один з основних типів. Результат завжди типу int.
Опреація логічне АБО виконується згідно таблиці істинності:
X |
Y |
X||Y |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Ця операція повертає 1, якщо хоча би один з операндів ненульовий, і 0 в противному випадку. Операція гарантує обчислення зліва направо, а якщо перший операнд не є 0, другий операнд не обчислюється. Тип int.
Умовна тримісна операція (тернарна).
На відміну від унарних і бінарних операцій умовна тернарна операція використовується з трьома операндами. В зображенні умовної операції використовуються два символи ‘?’ i ‘:’ і три вирази:
вираз1 ? вираз2 : вираз3.
Першим обчислюється виразу1. Якщо воно істинне, тобто не дорівнює нулю, то обчислюється значення виразу2, яке стає результатом. Якщо при обчисленні виразу 1 отримується 0 (нуль), то в якості результату приймається значення виразу3.
Приклад:
x<0? – x : x;
Вираз повертає абсолютну величину змінної х.
Коли виникає необхідність роботи з величинами, що записані побітово, в частинах машинного слова, застосовуються «побітові операції». До таких відносяться:
Операції зсуву (визначені тільки для цілочисельних операндів):
операнд лівий операція зсуву операнд правий
<< – зсув ліворуч бітового представлення лівого цілочисельного операнда на кількість розрядів, що дорівнює значенню правого цілочисельного операнда.
>> – зсув праворуч бітового представлення лівого цілочисельного операнда на кількість розрядів, що дорівнює значенню правого цілочисельного операнда.
2. Доповнення (побітове НЕ):
~ операнд
Це унарна операція, яка доповнює значення біту кожного розряду операнду до 1. Операнд повинен мати тип int.
3. Побітове І:
вираз & вираз
Результатом є побітова функція І операндів. Результат обчислюється побітово – для кожного розряду операндів згідно таблиці істинності операції логічне І і записується у відповідний розряд. Операція застосовується тільки до операндів типу int.
X |
Y |
X^Y |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
вираз ^ вираз
Результатом є побітова функція виключене побітове АБО, яка виконується для кожного розряду операндів згідно наведеної таблиці істинності. Застосовується тільки до операндів типу int.
В інших мовах програмування символ ^ застосовують для виконання операції піднесення до степеня. В мові С піднесення до другого або третього степенів зручно виконувати простим перемноженням. В інших випадках для піднесення числа х до степеня у слід використовувати вбудовану функцію pow(x,y).
5. Побітове АБО:
вираз | вираз
Результатом є відповідна побітова функція АБО, яка виконується для кожного розряду операндів згідно наведеної для логічного АБО таблиці істинності. Застосовується тільки до операндів типу int.