Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / 2_Посібник_С_002.doc
Скачиваний:
39
Добавлен:
17.05.2015
Размер:
2.7 Mб
Скачать

4.6 Операції порівняння

Мова C підтримує 2 групи операцій порівняння – операції рівності та операції відношення. Відомості про операції порівняння зведені в таблиці.

Вирази в яких присутні операції порівняння як правило використовуються в операторах керування для задання умови. Для операторів розгалуження (if, if else) це умова по якій вибирається напрямок подальшого ходу програми. Для операторів циклів (for, while, do while) це умова при виконанні якої буде виконана чергова ітерація циклу (у випадку якщо значення виразу дорівнює 1) а при не виконанні якої буде здійснено вихід з циклу (у випадку якщо значення виразу дорівнює 0).

Таблиця 4.4– Операції порівняння

Алгебраїчний запис

Лексеми операцій

Приклад виразу у С

Смисл виразу

Операції рівності

=

=

x==y

xрівнийy

!=

x != y

x не рівний y

Операції відношення

>

>

x > y

x більше y

<

<

x < y

xменше y

>=

x>=y

xбільше чи рівнеy

<=

x<=y

xменше чи рівнеy

Приклад. 11. Операції порівняння

int a=1, b=4;

printf("%i \n", a<=b); /*результат : 1*/

printf("%i \n", a==b); /*результат : 0*/

printf("%i \n", a!=b); /*результат : 1*/

printf("%i \n", a>b); /*результат : 0*/

4.7 Операції зсуву

Порозрядні логічні операції зсуву вліво (<<)та вправо (>>) застосовуються до даних цілих типів. Результат операцій зсуву теж буде цілим і відповідає двійковому представленню числа, зміщеному вліво чи право на задане число біт. При цьому висунуті за межі представлення типу біти втрачаються.

Операції зсуву здійснюють зсув операнда вліво (<<)чи вправо(>>)на число бітів, що задається другим операндом.

Формат представлення цихопераційнаступний:

Вираз 1 << Вираз 2,

Вираз 1 >> Вираз 2,

де Вираз 1– дані цілого типу,Вираз 2 – константа або константний вираз цілого типу, який визначає кількість зсунутих біт.

Приклад 12.Операції зсуву

int a = 9; /* змінна a в двійковому представлені 1001 */

int b = a>>2; /* змінна b в двійковому представленні дорівнює 10, тобто в десятковому 2 */

int c = a<<2; /* змінна с в двійковому представленні дорівнює 100100, тобто в десятковому 36.*/

4.8 Порозрядні операції

До порозрядних операцій відносяться: операція порозрядного логічного "І" (&), операція порозрядного логічного "АБО" (|), операція порозрядного "виключного АБО" (^). Таблиці істинності порозрядних операцій зображенні у таблиці 4.5

Таблиця 4.5 – Таблиці істинності порозрядних операцій

A

b

a & b

a | b

a ^ b

0

0

0

0

0

0

1

0

1

1

1

0

0

1

1

1

1

1

1

0

Операнди порозрядних операцій можуть бути будь-якого цілого типу. При необхідності над операндами виконуються перетворення за замовчуванням, тип результату - це тип операндів після перетворення.

Операція порозрядного логічного І (&) порівнює кожен біт першого операнда з відповідним бітом другого операнда. Якщо обидва порівнюваних біта одиниці, то відповідний біт результату встановлюється в 1, у протилежному випадку в 0.

Операція порозрядного логічного АБО (|) порівнює кожен біт першого операнда з відповідним бітом другого операнда. Якщо кожен з порівнюваних бітів дорівнює 1, то відповідний біт результату встановлюється в 1, у протилежному випадку результуючий біт дорівнює 0.

Операція порозрядного виключного АБО (^) порівнює кожен біт першого операнда з відповідними бітами другого операнда. Якщо один з порівнюваних бітів дорівнює 0, а другий біт дорівнює 1, то відповідний біт результату встановлюється в 1, у протилежному випадку, тобто коли обидва біти рівні 1 чи 0, біт результату встановлюється в 0.

Приклад 13. Операція порозрядного порівняння

int a=5, b=11, c;

c = a | b; /* с = 15 */

c = a & b; /* с = 1 */

c = a ^ b; /* с = 14 */

При обчиcленні порозрядних операцій кожен операнд представляється у двійковій формі. Так значення змінноїa у двійковій формі буде 01012, значення змінноїb –­­ 10112. Використовуючи таблиці істинності (табл. 4.5) для відповідної порозрядної операції, отримується результат у двійковій формі, який потім переводиться у десяткову форму. Приклад обчислення порозрядних операцій наведений на рис. 4.2.

Рисунок 4.2 - Приклад обчислення порозрядних операцій

Соседние файлы в папке Архив WinRAR