/*Десяткові Множення
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 бітів. Тоді сім бітів буде пропадати. Використання бітових полів дозволить помістити в одну змінну типу char8 відповідей так або ні. Бітові поля можна використати і там, де нам потрібні числа 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 байт, бо для цього є стандартні типи даних.