Читайте также:
|
|
/*Десяткові Множення
255 1 510
255 2 1020
255 3 2040
255 4 4080
255 5 8160
255 6 16320
255 7 32640
/*Десяткові Ділення
255 1 127
255 2 63
255 3 31
255 4 15
255 5 7
255 6 3
255 7 1 */
Порозрядні логічгі операції. Є три логічні операції для роботи з бітами в цілочисельних змінних.
Знак операції | Суть операції | Приклад |
& | Побітове логічне і (AND). Біт результату =1, якщо відповідні біти обох операндів =1 і = 0, коли один з бітів =0. Операція використовується для (відключення) очистки одного або кількох бітів цілої змінної. | & |
І | Побітове логічне включаюче або (OR) РЕЗУЛЬТАТ =0, КОЛИ ВІДПОВІДНІ БІТИ ОБОХ ОПЕРАНДІВ =0. операція використовується для включення (установки) одного або кількох бітів цілої змінної. | I 01010101 |
^ | Побітове логічне виключаюче або (XOR). Біт результату =1, якщо відповідні біти обох операндів різні. Інакше вона =0. | ^ 01010101 |
Це порозрядні операції, які роблять біти результату = 0 або 1 в залежності від значень бітів в операндах.
Що ж означає включення-відключення заданих бітів цілої змінної. Нехай є змінна типу char і нам треба очистити (тобто зробити їх нульовими) 0 і 4 біти, залишивши останні незмінними. Виконаємо операцію логічного І нашого числа з двійковим числом 11101110. Тоді в кожній позиції, де в другому числі є одиниця, результат збережеться, позиція, де в другому числі є 0, результат буде нульовим.
Установка (включення) бітів з допомогою операції або виконується аналогічно. В позиції, де 2 число 1 результат буде 1, де в другому числі 0, результат незмінним.
==
Операція доповнення. Це унарна операція, яка полягає в перетворенні бітів операнда на протилежні.
Бітові поля в структурах. Використання бітових полів економить пам’ять при роботі зі структурами. Бітове поле - це елемент структури, який складається з заданої кількості бітів.
Багато полів, особливо в базах даних мають відповіді так або ні. Найкоротший тип є тип char, який займає 8 бітів. Тоді сім бітів буде пропадати. Використання бітових полів дозволить помістити в одну змінну типу char 8 відповідей так або ні. Бітові поля можна використати і там, де нам потрібні числа 1, 2, 3, які представляються 2 бітами. 3 бітами - числа від 0 до 7, 4 бітами - числа від 0 до 15. Задання бітових полів і звертання до них не відрізняється від звичайних змінних.
Бітові поля мають тип unsigned int, а розмір задається після двокрапки, яка стоїть за іменем поля. Наприклад:
struct data
{ unsigned a1:1;
unsigned a2:2;
unsigned a3:3; }
Бітові поля - це невеликі цілі числа без знаку, з заданою кількістю двійкових розрядів, в структурі мають бути спочатку, перед іншими елементами. Бітові поля довжиною n біт можуть містити числа з діапазону від 0 до 2n+1. Якщо в таке поле помістити число, яке не входить в заданий діапазон, то компілятор не видасть помилки, а програма дасть не передбачені результати. Не рекомендується задавати бітові поля довжиною 8 або 16 байт, бо для цього є стандартні типи даних.
2. Варіанти індивідуальних завдань
1. Визначити структуру DATA, яка має 4 бітові поля розміром в 1, 2, 3 і 4 біти. Описати 2 змінні структурного типу DATA. Значення 1-ї змінної задати при описі і скопіювати цю інформацію в 2-гу змінну структурного типу простим присвоюванням структур та за допомогою присвоєння полів структур. Значення полів другої структури вивести на екран.
2. Використовуючи операції зсуву, помножити задане ціле число на 2, 4, і 16. Задане число і результати множення вивести на екран.
3. Визначити структуру DATA, яка має 4 бітові поля розміром в 1, 2, 3 і 4 біти. Описати 2 змінні структурного типу DATA. Значення 1-ї змінної задати при описі і скопіювати цю інформацію в 2-гу змінну структурного типу простим присвоюванням структур та за допомогою присвоєння полів структур. Значення полів другої структури вивести на екран.
4. Визначити структуру VAR, яка має 3 бітові поля розміром 1, 3 і 4 біти. Описати 2 змінні структурного типу VAR. Значення 1-ї змінної задати за допомогою операторів присвоєння і скопіювати цю інформацію в 2-гу змінну структурного типу за допомогою присвоєння полів структур. Значення полів другої структури вивести на екран.
5. Використовуючи операції зсуву, поділити число 526 на 2, 4, і 16. Задане число і результати ділення вивести на екран.
6. Використовуючи операції зсуву, помножити ціле число 10 на 2, 4, і 16. Задане число і результати множення вивести на екран
7. Визначити структуру VAR, яка має 4 бітові поля розміром 1, 2, 3 і 4 біти.. Описати 2 змінні структурного типу VAR. Значення 1-ї змінної задати при описі і скопіювати цю інформацію в 2-гу змінну структурного типу простим присвоюванням структур та за допомогою присвоєння полів структур. Значення полів другої структури вивести на екран після кожного присвоєння.
8. Використовуючи операції зсуву, помножити задане ціле число на 8, 4, і 16. Задане число і результати множення вивести на екран.
9. Використовуючи операції зсуву, поділити число 512 на 2, 32, і 16. Задане число і результати ділення вивести на екран.
10. Визначити структуру VAR, яка має 4 бітові поля розміром 1, 2, 3 і 4 біти.. Описати 2 змінні структурного типу VAR. Значення 1-ї змінної задати при описі і скопіювати цю інформацію в 2-гу змінну структурного типу простим присвоюванням структур та за допомогою присвоєння полів структур. Значення полів другої структури вивести на екран після кожного присвоєння.
11. Використовуючи операції зсуву, помножити задане ціле число на 2, 8, і 16. Задане число і результати множення вивести на екран.
12. Використовуючи операції зсуву, помножити задане ціле число на 8, 4, і 16. Задане число і результати множення вивести на екран.
3 Методичні вказівки
1.Перед написанням програми ще раз переглянути теоретичний матеріал і приклади програм, що ілюструють особливості обробки змінних структурного типу у С-програмах
2.Визначити структуру, яка має бітові поля, задану у варіанті. Описати екземпляри змінних визначеного структурного типу.
3.Значення одної змінної структурного типу задати при описі.
4.Заповнити 2-у структуру шляхом копіювання та за допомогою присвоєння полів структур
5.Поля другої структури вивести на екран, кожний варіант заповнення вивести окремо.
6.Використовуючи операції зсуву помножити або поділити задані чисел на числа, рівні степеням 2.
7.Запустити програму на компіляцію і виконання. У випадку необхідності виправити синтаксичні та інші помилки.
4 Контрольні запитання
1. Як працює операція по бітного додавання?
2. Як працює операція по бітного множення?
3. Операція доповнення унарна чи бінарна?
Дата добавления: 2015-07-17; просмотров: 122 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лабораторна робота № 19 | | | Лабораторна робота № 21 |