Логічні операції виняток або. Приклад вирішення задачі XOR - виключає АБО. Для яких типів можна застосовувати логічні операції, порозрядні логічні операції та операції зсуву

Найпростіші логічні операції

Найпростіші логічні операції відносяться до двозначної логіки. Їх 4 штуки: "НЕ", "І", "АБО", "XOR". Також для позначення цих операцій використовують різні значки (“~”, “&” тощо).

При записі логічних формул замість слів “істина” та “брехня” зазвичай використовують стандартні міжнародні позначення:
Замість "істина" пишуть: true, T, t, 1.
Замість "брехня" пишуть: false, F, f, 0.

"НЕ"

Операція “НЕ” перетворює істину на брехню, а брехня на істину:

НЕ true = false
НЕ false = true

Ця операція має різні інші назви: “логічне НЕ”, “заперечення”, “логічне заперечення”, “інверсія”, “логічна інверсія”. Для міжнародних позначень замість НЕ пишуть NOT.

У природній мові цієї операції відповідає додавання слів "неправда, що..." на початку висловлювання. Наприклад:

Застосування операції “НЕ” до висловлювання (1):

"Неправда, що Сурков винен мені грошей". (2)

Якщо вислів (1) хибний, то вислів (2) істинний. Якщо вислів (2) хибний, то вислів (1) істинний.

Неважко зрозуміти, що подвійне застосування “НЕ” повертає нас до колишньої істинності.

"Неправда, що неправда, що Сурков винен мені грошей". (3)

Істинність висловлювання (3) завжди збігається з істинністю висловлювання (1).

"І"

Операція "І" застосовується до двох висловлювань. Її результат "істина", тільки якщо обидва висловлювання істинні (а інакше "брехня"):

false І false = false
false І true = false
true І false = false
true І true = true

Ця операція має різні інші назви: “логічне І”, “кон'юнкція”, “логічне множення”. Для міжнародних позначень замість І пишуть AND.

У природній мові цієї операції відповідає вставка спілки "і" між висловлюваннями. Наприклад:

“Сурков винен мені грошей”. (1)
"Петров винен мені грошей". (2)

Застосування операції “І” до висловлювань (1) та (2):

“Сурков винен мені грошей, і Петров винен мені грошей”. (3)

Цю фразу можна скоротити, зберігши колишній сенс:

"Сурков і Петров винні мені грошей". (3)

Висловлювання (3) істинне лише тоді, коли істинні обидва висловлювання: (1) та (2). Якщо хоча б одне з них хибне, то результат теж хибний. Якщо обидва помилкові – теж.

Тобто, якщо Петров мені грошей не заборгував, а заборгував лише Сурков, тоді висловлювання (3) не буде "напівправдою" або "напівложею", а буде просто брехнею.

"АБО"

Операція "АБО" застосовується до двох висловлювань. Її результат "істина", якщо хоча б одне висловлювання істинне (а інакше "брехня"):

false АБО false = false
false АБО true = true
true АБО false = true
true АБО true = true

У цій операції бувають різні інші назви: "логічне АБО", "що включає АБО", "диз'юнкція", "логічне додавання". Для міжнародних позначень замість "АБО" пишуть "OR".
У природній мові цієї операції відповідає вставка спілки "або" між висловлюваннями, але... не завжди (див. нижче про операцію "XOR"). Наприклад:

"Я хочу попити". (1)
"Я хочу поїсти". (2)

Застосування операції “АБО” до висловлювань (1) та (2):

“Я хочу попити, або хочу поїсти”. (3)

По-російськи звучить правильно, але кострубато, і цю фразу можна скоротити, зберігши колишній сенс:

“Я хочу попити чи поїсти”. (3)

Вислів (3) істинний тоді, коли істинно хоча б одне з висловлювань (1) і (2), а можна обидва. Якщо обидва висловлювання хибні, то результат також хибний.

Тобто якщо я хочу їсти, але не пити, тоді вислів (3) істинний. Якщо я не проти і поїсти, і попити, висловлювання (3) теж є істинним. Неправда воно тоді, коли я не хочу ні того, ні іншого.

"XOR"

Операція “XOR” застосовується до двох висловлювань. Її результат "істина", якщо одно з висловлювань істинно (а інакше "брехня"):

false XOR false = false
false XOR true = true
true XOR false = true
true XOR true = false

У цій операції бувають різні інші назви: "що виключає АБО", "додавання за модулем 2", "логічне додавання за модулем 2". "XOR" - це міжнародне позначення, загальноприйнятого "російського" аналога немає.

У природній мові цієї операції відповідає вставка спілки "або" між висловлюваннями - так само, як у випадку з операцією "АБО". Наприклад:

“Я збираюся просити збільшення зарплати”. (1)
"Я спробую заощадити". (2)

Застосування операції “XOR” до висловлювань (1) та (2):

“Я збираюся просити збільшення зарплати або я спробую заощадити”. (3)

Скорочено:

“Я збираюся просити збільшення зарплати або спробую заощадити”. (3)

Висловлювання (3) істинне тоді, коли істинно одно з висловлювань (1) і (2). Якщо я не збираюся ні просити збільшення, ні економити, тоді фраза хибна. Також я мав на увазі, що не збираюся робити і те, й інше одночасно.

Зверніть увагу на різницю між операціями “АБО” та “XOR”. Вона полягає лише в останньому правилі:

true АБО true = true
true XOR true = false

У природній мові обидві операції зображуються одним і тим самим союзом "або". Це приклад неоднозначності природної мови. Якщо пам'ятаєте, омоніми та багатозначні слова можуть мати більше одного значення. Союз “або” саме такий: він має два можливі значення. Перше виражається логічною операцією "АБО", друге - логічною операцією "XOR".

У англійській існують самі проблеми: союз “or” має самі значення. А ось стародавнім римлянам було простіше, тому що в латині є два різні слова: "vel" (операція "АБО") і "aut" (операція "XOR").

Оскільки різниця між операціями "АБО" і "XOR" невелика (всього одне останнє правило), то іноді ця різниця не має значення. Іноді у тому, що мають на увазі, можна здогадатися по інтонації, чи з контексту. Іноді визначити точний сенс не вдається.

На практиці найчастіше використовують двовходові елементи, що «виключає АБО. На рис. 1 показано умовне графічне позначення елемента без інверсії та його таблиця станів. По простому, суть даного елемента зводиться до наступного, сигнал на виході з'являється лише в тому випадку, коли логічні рівні на входах однакові.

Схема виділення фронту та зрізу імпульсу

У цій схемі три елементи «Виключає АБО» використовуються для затримки імпульсів. DD1.4 - підсумовуючий. Вихідні імпульси мають стабільні фронти та зрізи. Тривалість кожного вихідного імпульсу дорівнює потрійний час затримки перемикання кожного з трьох елементів. Тимчасовий проміжок між фронтами вихідних імпульсів дорівнює тривалості вхідного імпульсу. Також цей пристрій подвоює частоту вхідного сигналу.

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

Іноді з'являється необхідність отримати елемент «Виключає АБО» з окремих стандартних логічних елементів. Прикладом може бути схема елемента «Виключає АБО» реалізована на чотирьох елементах 2-І-НЕ. На малюнку 3 показана схема «що виключає АБО» у чотирьох її станах. Тут показані всі можливі логічні рівні на кожному з логічних елементів, що використовуються 2-І-НЕ.

Такі елементи входять у схему. У цій схемі елемент «Виключає АБО» виконаний на чотирьох елементах 2-І-НЕ, що входять в один корпус мікросхеми К561ЛА7.

Формувач дискретного сигналу з різницевою частотою

Схема формувача показана малюнку 4. Тут логічний елемент «що виключає АБО» також реалізований на чотирьох елементах 2-І-НЕ.

На входи 1 і 2 формувача падають імпульси прямокутної форми (див. графіки 1 і 2), які відрізняються частотою проходження. Вузол на логічних елементах DD1.1-DDI.4 перемножує ці сигнали. Вихідний імпульсний сигнал (графік 3) з елемента DD1.4 подається на інтегруючий ланцюг R3, С1, що перетворює його в сигнал трикутної форми (графік 4) з частотою, що дорівнює різниці частот вхідних сигналів, а ОУ DA1 перетворює отриманий сигнал меандр (див. графік 5). Резистором R1 регулюють тривалість позитивної та негативної напівхвиль вихідного сигналу. Дуже цікава схема. Радіоконструктор, є над чим подумати. Наприклад, сигнал, показаний на третьому графіку, є сигналом ШІМ синусоїди.
Звичайно діапазон використання елементів «що виключає АБО» набагато ширший. Я привів тут на мій погляд цікавіший для радіоаматорів.

У цій статті ми поговоримо про деякі бітові операції. Розглянемо основні їх: XOR (що виключає АБО), AND (І), NOT (НЕ) і навіть OR (АБО).

Як відомо, мінімальною одиницею вимірювання інформації є біт, що зберігає одне з 2-х значень: 0 ( False, брехня) або 1 ( True, Істина). Таким чином, бітовий осередок може одночасно перебувати лише в одному з двох можливих станів.

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

Логічна операція AND(і)

ANDпозначається знаком &.

Оператор AND виконується з двома бітами, візьмемо, наприклад, a і b. Результат виконання операції AND дорівнює 1, якщо a і b дорівнюють 1. В інших випадках результат дорівнює 0. Наприклад, за допомогою AND ви можете дізнатися, чи то парне число.

Подивіться на таблицю істинності операції AND:

Логічна операція OR (АБО)

позначається знаком | .

Оператор ORтакож виконується з двома бітами (a та b). Результат дорівнює 0, якщо a і b дорівнюють 0, інакше він дорівнює 1. Дивимося таблицю істинності.

Логічна операція XOR (що виключає АБО)

Оператор XOR позначається ^.

XORвиконується з двома бітами (a та b). Результат виконання операції XOR ( що виключає АБО) дорівнює 1, коли один із бітів b або a дорівнює 1. В інших ситуаціях результат застосування оператора XOR дорівнює 0.

Таблиця істинності логічної операції для XOR (що виключає АБО) виглядає так:

Використовуючи XOR (що виключає АБО), ви можете змінити значення 2-х змінних однакового типу даних, не використовуючи тимчасову змінну. А ще за допомогою XOR можна зашифрувати текст, наприклад:

String msg="This is a message"; char message = msg.toCharArray(); String key = ".*)"; String encryptedString = New String(); for(int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Згоден, XOR - далеко не найнадійніший метод шифрування, але це не означає, що його не можна зробити частиною якогось шифрувального алгоритму.

Логічна операція NOT (НЕ)

Це побитове заперечення, тому виконується з одним бітом і позначається .

Результат залежить від стану біта. Якщо він у нульовому стані, то результат операції - одиниця і навпаки. Все дуже просто.

Ці 4 логічні операції слід запам'ятати насамперед, тому що з їх допомогою можна отримати практично будь-який можливий результат. Також існують такі операції, як<< (побитовый сдвиг влево) и >> (побитовий зсув праворуч).

Абсолютно всі цифрові мікросхеми складаються з тих самих логічних елементів – «цеглинок» будь-якого цифрового вузла. Ось про них ми й поговоримо зараз.

Логічний елемент– це така схемка, яка має кілька входів і один вихід. Кожному стану сигналів на входах відповідає певний сигнал на виході.

Отже, які елементи бувають?

Елемент "І" (AND)

Інакше його називають "кон'юнктор".

Для того, щоб зрозуміти як він працює, потрібно намалювати таблицю, в якій будуть перераховані стани на виході за будь-якої комбінації вхідних сигналів. Така таблиця називається « таблиця істинності». Таблиці істинності широко використовуються в цифровій техніці для опису роботи логічних схем.

Ось так виглядає елемент «І» та його таблиця істинності:

Оскільки вам доведеться спілкуватися як з російською, так і з буржуйською тех. документацією, я наводитиму умовні графічні позначення (УДО) елементів і за нашими та за не нашими стандартами.

Дивимося таблицю істинності, і проясняємо у мозку принцип. Зрозуміти його не складно: одиниця на виході елемента «І» виникає лише тоді, коли на обидва входи подано одиниці. Це пояснює назву елемента: одиниці мають бути І на одному, І на іншому вході.

Якщо подивитися трохи інакше, то можна сказати так: на виході елемента «І» буде нуль у тому випадку, якщо хоча б на один із його входів подано нуль. Запам'ятовуємо. Йдемо далі.

Елемент «АБО» (OR)

Інакше, його звуть диз'юнктор.

Милуємося:

Знову ж таки, назва говорить сама за себе.

На виході виникає одиниця, коли на один АБО на інший АБО на обидва зразу входу подана одиниця. Цей елемент можна назвати також елементом «І» для негативної логіки: нуль на його виході буває тільки в тому випадку, якщо на один і на другий вхід подані нулі.

Елемент "НЕ" (NOT)

Найчастіше його називають «інвертор».

Треба щось говорити з приводу його роботи?

Елемент «І-НЕ» (NAND)

Елемент І-НЕ працює так само як «І», тільки вихідний сигнал повністю протилежний. Там де елемент «І» на виході має бути «0», елемент «І-НЕ» - одиниця. І навпаки. Це легко зрозуміти за еквівалентною схемою елемента:

Елемент «АБО-НЕ» (NOR)

Та сама історія – елемент «АБО» з інвертором на виході.

Наступний товариш влаштований дещо хитрішим:
Елемент «Виключає АБО» (XOR)

Він ось такий:

Операція, яку він виконує, часто називають «складання за модулем 2». Насправді на цих елементах будуються цифрові суматори.

Дивимося таблицю істинності. Коли на вихід одиниці? Вірно: коли на входах різні сигнали. На одному – 1, на іншому – 0. Ось такий він хитрий.

Еквівалентна схема приблизно така:

Її запам'ятовувати необов'язково.

Власне, це є основні логічні елементи. На їх основі будуються будь-які цифрові мікросхеми. Навіть ваш улюблений Пентіум 4.

Ну і насамкінець – кілька мікросхем, усередині яких містяться цифрові елементи. Біля висновків елементів позначені номери відповідних ніг мікросхеми. Усі мікросхеми, наведені тут, мають 14 ніг. Живлення подається на ніжки 7(-) та 14(+). Напруга живлення – дивись у таблиці у попередньому параграфі.

Позначається оборотом промови «або…, або…» Складове твердження «або A, або B» вважається істинним, коли істинно або A, або B, але не обидва одночасно; в іншому випадку складне твердження хибне.

Тобто. результат істинний (рівний 1), якщо A не дорівнює B (A≠B).

Цю операцію нерідко порівнюють із диз'юнкцією тому, що вони дуже схожі за властивостями, і обидві мають схожість із союзом «або» у повсякденному мовленні. Порівняйте правила цих операцій:

1. істинно, якщо істинно або , абообидва одразу.

2. істинно, якщо істинно або, але необидва одразу.

Операція виключаєостанній варіант ("обидва відразу") і з цієї причини називається виключним "АБО". НеоднозначністьПриродною мовою є те, що союз «або» може застосовуватися в обох випадках.

5. Імплікація (логічне слідування)утворюється з'єднанням двох висловлювань в одне за допомогою мовного обороту «якщо …, то ….».

Запис: А®В

Складове висловлювання, утворене з допомогою операції імплікації, хибно тоді й лише тоді, коли з істинної передумови (першого висловлювання) слід помилковий висновок (друге висловлювання).

Тобто. якщо з 1 слідує 0, то результат – 0, в інших випадках – 1.

Наприклад, висловлювання «Якщо число ділиться на 10, воно ділиться на 5» істинно, т.к. істинні і перше і друге висловлювання.

Висловлювання «Якщо число ділиться на 10, воно ділиться на 3» хибно, т.к. з істинної причини робиться хибний висновок.

"Цей чотирикутник - квадрат" (А) та "Близько цього чотирикутника можна описати коло" (В). Тоді складне висловлювання, читається як "Якщо цей чотирикутник квадрат, то біля нього можна описати коло".

У звичайній мові зв'язування "якщо то"описує причинно-наслідковий зв'язок між висловлюваннями. Але у логічних операціях сенс висловлювань не враховується. Розглядається лише їхня істинність чи хибність. Тому не треба бентежитися "безглуздістю" імплікацій, освічених висловлюваннями, зовсім не пов'язаними за змістом. Наприклад, такими: "якщо президент США – демократ, то в Африці водяться жирафи", "якщо кавун – ягода, то в бензоколонці є бензин".

6. Еквівалентність (логічна рівність, ~ º Û) утворюється з'єднанням двох висловлювань в одне за допомогою мовного звороту «…тоді і тільки тоді, коли...»

Складове висловлювання, утворене операцією еквівалентності, істинно тоді й лише тоді, коли обидва висловлювання одночасно або хибні, або щирі.

Наприклад, висловлювання «Комп'ютер може проводити обчислення тоді і тільки тоді, коли він включений» і «Комп'ютер не може проводити обчислення тоді і тільки тоді, коли він не включений» - істинні, оскільки обидва прості висловлювання одночасно істинні.


Таблиці істинності

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

Таблиця істинностіце табличне уявлення логічної схеми (операції), у якому перераховані всі можливі поєднання значень істинності вхідних сигналів (операндів) разом із значенням істинності вихідного сигналу (результату операції) для кожного з цих поєднань.

Відобразимо вище розглянуті логічні операції у таблиці істинності:

В алгебрі висловлювань всі логічні функції шляхом логічних перетворень можуть бути зведені до трьох базових: логічного додавання, логічного множення та логічного заперечення.

Доведемо, що операція імплікації А®В рівносильна логічному виразу:

Зависає