|
|||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Логічні побітові операціїУ таблиці 5.1 наведено приклади істиннісних значень логічних змінних у різних мовах програмування.
Таблиця 5.1 Істиннісні значення логічних змінних
В мовах програмування є ряд операцій, які дозволяють працювати з бітами. Розглянемо логічні побітові операції та логічні операції на прикладі мови програмування С++. Основними є чотири побітові оператори: & – побітове логічне «і»; | – побітове логічне «або»; ~ – побітове логічне заперечення; ^ – побітове логічне «альтернативне або ». Приклад 5.1. Розглянемо наступні цілі числа в бітовому представленні: A = 1010 та B = 1100, тоді отримаємо такі результати (знову ж таки, в бітовому представленні) виконання відповідних операторів: A & B = 1000; A | B = 1110; A ^ B = 0110; ~ A = 11…110101. Звернемо увагу на четвертий приклад: тут кількість одиниць в старших розрядах залежить від типу даних, яким представлено число А. Наприклад, якщо це 32-розрядне ціле число, то загальна кількість бітів повинна бути 32, тобто в прикладі зліва стоятиме 28 одиниць. ▲ Приклад5.2. Використання булівської функції альтернативне «або». Розглянемо таку задачу: необхідно поміняти місцями вміст двох змінних, без використання допоміжної змінної. Є варіант вирішення цієї задачі за допомогою алгебраїчних операцій, але розглянемо її рішення за допомогою операції альтернативне «або». Нехай маємо дві змінні х та у. Щоб поміняти їхні значення місцями, необхідно виконати наступні дії: x = x Å y y = y Å x x = x Å y ▲
Для маніпуляції бітами знадобляться ще два оператори – оператори побітового зсуву: << – зсув вліво; >> – зсув вправо. Оператор зсуву вліво a << b зсуває біти числа a вліво на b позицій. Аналогічно оператор зсуву вправо зсуває біти вправо. При цьому, біти, що дописуються до числа заповнюються нулями. Приклад 5.3. 9<<2 повертає 36, тому що 1001 зрушується на 2 біта вліво і стає рівним 100100, що рівне в десятковій системі 36. 9>>2 повертає 2, тому що 1001 зрушується на два біта управо і стає 10, що рівне в десятковій системі 2. Аналогічно, -9>>2 повертає -3, тому що знак зберігається.▲ Взагалі кажучи, a << b це те саме, що число a домножити на 2 b. Аналогічно a >> b еквівалентно цілочисельному діленню a на 2 b. Звідси можна зробити корисний висновок: 2 a = 1<< a. Операції побітового зсуву найчастіше використовують для встановлення певного біту в числі. Наприклад, 1<< i – це число, в якому i ‑ий біт встановлений (дорівнює 1), а всі решта біти рівні нулю. У табл. 5.2. наведено приклади побітових операцій у мовах програмування. Таблиця 5.2. Приклади побітових операцій
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |