АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Логічні побітові операції

Читайте также:
  1. II. Методологічні засади, підходи, принципи, критерії формування позитивної мотивації на здоровий спосіб життя у дітей та молоді
  2. Біологічні препарати і стимулятори росту рослин
  3. Вексель як форма міжгосподарських розрахунків. Банківські операції з векселями
  4. Взаємовідносини людини і природи.Екологічні проблеми ,її наукові ,соціально-філософські та етиико-гуманістичні аспекти.
  5. Вплив різних факторів на процеси бродіння та реологічні властивості тіста.
  6. Геолого-геоморфологічні екологічні проблеми
  7. Гідрогеологічні задачі – це математичне формулювання проблем фільтрації, масопереносу та вологопереносу.
  8. Гідрогеологічні умови
  9. Гідрометеорологічні фактори коливання рівня
  10. Глобальні екологічні кризи – передумови та наслідки.
  11. Екологічні аспекти енергетичного аудиту
  12. Екологічні класифікації та нормативи якості вод. Створення карт

У таблиці 5.1 наведено приклади істиннісних значень логічних змінних у різних мовах програмування.

 

Таблиця 5.1

Істиннісні значення логічних змінних

Мова програмування Тип змінної Значення
С++ Bool false (0), true (всі цифри,окрім нуля)
Java Bool false, true
Pascal Boolean false, true

В мовах програмування є ряд операцій, які дозволяють працювати з бітами. Розглянемо логічні побітові операції та логічні операції на прикладі мови програмування С++.

Основними є чотири побітові оператори:

& – побітове логічне «і»;

|побітове логічне «або»;

~ – побітове логічне заперечення;

^ – побітове логічне «альтернативне або ».

Приклад 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.

Приклади побітових операцій

Мова програ-мування Побіто-ве логічне «і» Побіто-ве логічне «або» Побіто-ве логічне «не» Побітове логічне «альтерна-тивне або» Зсув вліво Зсув впра-во
С++ & | ~ ^ << >>
Java & | ~ ^ << >>
Pascal and or not xor shl shr

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)