Привіт і ласкаво просимо до ще одного розділу.
У цьому розділі я познайомлю вас з основами булевої алгебри.
Що таке булева алгебра?
Булева алгебра - це алгебра, де ми намагаємося використовувати одиниці та нулі для позначення істинності та хибності і намагаємося виконувати
операції, використовуючи цю істинність та хибність.
Зазвичай одиниця позначає істину, а нуль - хибність.
Ми можемо виконувати логічні операції за допомогою оператора NOT, оператора AND, оператора OR, XOR і так далі,
використовуючи
лише одиниці та нулі.
Візьмемо, наприклад, оператор NOT.
Коли ми застосовуємо оператор NOT до нульового значення, воно стає одиницею.
Коли ми застосовуємо оператор NOT до значення one, одиниця перетворюється на нуль.
А це таблиця істинності, яка підсумовує результати.
Отже, якщо у вас є A нуль і B НЕ нуль, нуль стає одиницею.
Аналогічно, якщо ми маємо A одиницю, а B НЕ одиницю, вона стає нулем.
Отже, ми просто заперечуємо початкове значення, і воно стає протилежним до нього.
Це і є сенс булевої логіки.
Булевий означає, що він може приймати лише два значення: істина або хибність, одиниця або нуль.
Інший приклад: приклад оператора AND.
Отже, якщо ми візьмемо один І один, результат буде один, тобто
це істина.
Якщо ми візьмемо одиницю І нуль, то отримаємо нуль, а це означає, що воно хибне.
Отже, щоб отримати істину, ми повинні мати істину І істину.
Якщо і те, і інше істинно, то ми отримуємо істину.
Також, якщо нуль І нуль, ми отримаємо нуль.
Це означає, що якщо false AND false, ми отримаємо false.
А це таблиця правди, яка підсумовує її.
Як ви можете бачити, якщо на вході нуль і на іншому вході теж нуль, то на виході буде нуль.
Якщо на вході нуль, а на виході одиниця, то на виході все одно буде нуль.
Якщо на вході одиниця, а будь-який інший вхід дорівнює нулю, вихід все одно буде нульовим.
І якщо на вході одиниця, а на іншому вході одиниця, то на виході ми отримуємо одиницю.
Отже, єдиний випадок, коли AND є істинним, це коли обидва входи є істинними.
У цьому і є сенс.
Всі ці лінії тут.
Інший приклад - це приклад оператора OR. Одиниця АБО одиниця дає одиницю, одиниця АБО нуль дає одиницю,
нуль АБО нуль дає нуль.
Отже, у цьому випадку ви можете отримати одиницю, тільки якщо один з вхідних даних дорівнює одиниці.
Неважливо, чи обидва дорівнюють одиниці, чи один з них дорівнює нулю. Доки на одному з входів є одиниця, на
виході буде одиниця.
А це таблиця правди, яка підсумовує її.
Отже, якщо ваш вхідний параметр дорівнює нулю, і інший вхідний параметр дорівнює нулю, ви отримаєте нуль.
Але якщо ваш вхідний параметр дорівнює нулю, а інший вхідний параметр дорівнює одиниці, ви отримаєте одиницю.
І тут, аналогічно, якщо ваш вхідний параметр дорівнює одиниці, а інший вхідний параметр дорівнює нулю, ви також отримаєте одиницю.
І якщо обидва входи дорівнюють одиниці, ви також отримуєте одиницю.
Тепер, нарешті, ми маємо ще один приклад оператора XOR.
XOR розшифровується як виключне АБО.
Так, наприклад, один XOR одиниця дає нуль, один XOR нуль дає одиницю, а нуль XOR нуль дає нуль.
Отже, як ви бачите, для того, щоб отримати одиницю, достатньо, щоб один з входів був одиницею.
Ви не можете мати обидва входи одним. А ось тут - підсумок, який показує все у вигляді таблиці правди.
Отже, якщо на першому вході нуль, а на другому нуль, то на виході ви отримаєте нуль. Якщо на перший вхід подано нуль, а на другий - одиницю,
ви отримаєте на виході одиницю. Якщо на першому вході одиниця, а на другому
нуль, ви отримуєте одиницю. Якщо перший вхідний параметр дорівнює одиниці, а другий також одиниці,
ви отримаєте нуль.
Отже, йому потрібен лише один вхід.
Отже, ви не можете мати обидва входи як один.
Ще одна особливість XOR полягає в тому, що ви можете використовувати його для перекидання бітів.
Наприклад, якщо ви виконаєте XOR A з нулем, ви отримаєте назад A. A може бути нулем або одиницею.
Отже, якщо ви отримуєте нуль XOR нуль, ви отримуєте нуль.
Якщо ви отримуєте один XOR нуль, ви отримуєте одиницю.
Таким чином, що б ви не зробили XOR з нулем, ви отримаєте початкове значення.
Отже, це можна зобразити першим рядком у цій таблиці істинності.
Якщо перший вхідний параметр дорівнює нулю і другий вхідний параметр дорівнює нулю, ви отримаєте нуль.
Ви отримуєте назад вихідні дані.
Якщо перший вхідний параметр дорівнює нулю, а другий - одиниці, ви отримаєте назад початковий вхідний параметр - одиницю.
Отже, що б це не було, один з входів дорівнює нулю, а інший може мати будь-яке інше значення.
Ви отримуєте назад початкову вартість.
А тут ще один підсумок: якщо ви виконуєте операцію XOR з одиницею, ви отримаєте
заперечення початкового введення.
Наприклад, якщо ви візьмете A XOR один, то отримаєте NOT A.
Так, наприклад, якщо A було нулем, нуль XOR одиниця, ви отримаєте одиницю.
Якщо один XOR один, то повертається нуль.
І це позначено тут другою лінією.
Ви отримуєте назад протилежне нулю, тобто одиницю. Якщо перший вхідний параметр дорівнює одиниці, а другий - одиниці,
ви отримаєте результат, протилежний першому, тобто нуль.
І, нарешті, у нас є self-XOR.
Якщо ви
виконуєте операцію XOR значення з самим собою, ви отримаєте нуль.
Так, наприклад, A XOR A, де A може бути нулем або одиницею.
Отже, якщо нуль XOR нуль, ви отримаєте назад нуль. Один XOR одиниці, і ви отримаєте нуль.
І це можна позначити діагональною лінією в таблиці істинності, де ви можете побачити, що якщо перший вхід дорівнює нулю і другий
вхід дорівнює нулю, ви отримаєте назад нуль.
Якщо перший вхід - одиниця, другий вхід - одиниця, ви також отримаєте нуль.
Отже, це все особливі характеристики оператора XOR.
Ось і все про короткий вступ до базової булевої алгебри.
Дякуємо за перегляд.
Побачимося в наступному.