Логические вентили в Python — руководство для начинающих
В этой статье подробно рассматриваются различные логические вентили в Python. Логические вентили — это самые основные материалы для реализации цифровых компонентов. Использование логических вентилей варьируется от компьютерной архитектуры до области электроники.
Эти вентили имеют дело с двоичными значениями, либо 0, либо 1. Различные типы вентилей принимают разное количество входных данных, но все они обеспечивают один выход. Эти логические элементы в сочетании образуют сложные схемы.
Давайте попробуем реализовать логические вентили на языке Python.
Основные логические элементы в Python
В разработке схем есть три самых основных логических элемента.
ИЛИ Ворота
Этот вентиль выдает на выходе значение 1, если любой из входов равен 1. Это похоже на операцию \сложения в отношении двоичных чисел.
Представленная выше таблица является таблицей истинности. Он используется для демонстрации всех комбинаций значений для входных данных вентиля ИЛИ
. Цифра рядом с таблицей обозначает вентиль ИЛИ
.
Реализация на Питоне:
# Function to simulate OR Gate
def OR(A, B):
return A | B
print("Output of 0 OR 0 is", OR(0, 0))
print("Output of 0 OR 1 is", OR(0, 1))
print("Output of 1 OR 0 is", OR(1, 0))
print("Output of 1 OR 1 is", OR(1, 1))
Мы получаем следующий вывод:
Output of 0 OR 0 is 0
Output of 0 OR 1 is 1
Output of 1 OR 0 is 1
Output of 1 OR 1 is 1
И Ворота
Этот вентиль обеспечивает выход 0, если любой из входов равен 0. Эта операция рассматривается как умножение двоичных чисел.
Мы можем видеть в таблице истинности, что всякий раз, когда любой из двух входов равен 0, выход также равен 0. Фигура рядом обозначает вентиль И
.
Реализация на Питоне:
# Function to simulate AND Gate
def AND(A, B):
return A & B
print("Output of 0 AND 0 is", AND(0, 0))
print("Output of 0 AND 1 is", AND(0, 1))
print("Output of 1 AND 0 is", AND(1, 0))
print("Output of 1 AND 1 is", AND(1, 1))
Выход:
Output of 0 AND 0 is 0
Output of 0 AND 1 is 0
Output of 1 AND 0 is 0
Output of 1 AND 1 is 1
НЕ Ворота
Этот вентиль обеспечивает отрицание данного ввода. Этот вентиль поддерживает только один вход.
Вышеприведенная таблица наглядно отображает перестановку битов. На соседнем рисунке показаны ворота НЕ
.
Реализация Python бинарного NOT Gate:
# Function to simulate NOT Gate
def NOT(A):
return ~A+2
print("Output of NOT 0 is", NOT(0))
print("Output of NOT 1 is", NOT(1))
Выход:
Output of NOT 0 is 1
Output of NOT 1 is 0
Примечание. Функция NOT()
дает правильные результаты для битовых значений 0 и 1.
Универсальные логические элементы в Python
Есть два универсальных логических элемента: NAND
и NOR
. Они называются универсальными, потому что любая логическая схема может быть реализована с использованием только этих вентилей.
Ворота И-НЕ
Элемент И-НЕ
представляет собой комбинацию элемента И
, за которым следует элемент НЕ
. В отличие от вентиля И
, он выдает 0 только тогда, когда установлены оба бита, иначе 1.
В Python функция NAND()
может быть реализована с использованием ранее созданных функций AND()
и OR()
.
# Function to simulate AND Gate
def AND(A, B):
return A & B;
# Function to simulate NOT Gate
def NOT(A):
return ~A+2
# Function to simulate NAND Gate
def NAND(A, B):
return NOT(AND(A, B))
print("Output of 0 NAND 0 is", NAND(0, 0))
print("Output of 0 NAND 1 is", NAND(0, 1))
print("Output of 1 NAND 0 is", NAND(1, 0))
print("Output of 1 NAND 1 is", NAND(1, 1))
Мы получаем следующий вывод:
Output of 0 NAND 0 is 1
Output of 0 NAND 1 is 1
Output of 1 NAND 0 is 1
Output of 1 NAND 1 is 0
Ворота НО
Логический элемент НЕ-ИЛИ
является результатом каскадирования вентиля ИЛИ
, за которым следует вентиль НЕ
. В отличие от вентиля ИЛИ
, он выдает на выходе 1, когда все входы равны 0.
Подобно функции NAND()
, NOR()
можно реализовать с использованием уже созданных функций.
# Function to calculate OR Gate
def OR(A, B):
return A | B;
# Function to simulate NOT Gate
def NOT(A):
return ~A+2
# Function to simulate NOR Gate
def NOR(A, B):
return NOT(OR(A, B))
print("Output of 0 NOR 0 is", NOR(0, 0))
print("Output of 0 NOR 1 is", NOR(0, 1))
print("Output of 1 NOR 0 is", NOR(1, 0))
print("Output of 1 NOR 1 is", NOR(1, 1))
Выход:
Output of 0 NOR 0 is 1
Output of 0 NOR 1 is 0
Output of 1 NOR 0 is 0
Output of 1 NOR 1 is 0
Эксклюзивные логические элементы на Python
Существует два специальных типа логических элементов, XOR и XNOR, которые фокусируются на количестве входов 0 или 1, а не на отдельных значениях.
XOR-ворота
Акроним для Exclusive-OR, вентиль XOR
выдает на выходе 1, когда количество единиц на входе нечетное.
Мы можем ясно видеть вывод для XOR Gate в таблице выше. Он обеспечивает вывод 1, когда количество единиц на входе равно 1, то есть нечетно.
Мы можем легко реализовать функцию XOR()
в Python следующим образом:
# Function to simulate XOR Gate
def XOR(A, B):
return A ^ B
print("Output of 0 XOR 0 is", XOR(0, 0))
print("Output of 0 XOR 1 is", XOR(0, 1))
print("Output of 1 XOR 0 is", XOR(1, 0))
print("Output of 1 XOR 1 is", XOR(1, 1))
Мы получаем следующий вывод:
Output of 0 XOR 0 is 0
Output of 0 XOR 1 is 1
Output of 1 XOR 0 is 1
Output of 1 XOR 1 is 0
XNOR ворота
Он формируется в результате комбинации вентилей XOR
и NOT
. В отличие от XOR
, он обеспечивает вывод 1, когда количество единиц на входе четное.
Функцию XOR()
можно реализовать с помощью функций XOR()
и NOT()
в Python.
# Function to simulate XOR Gate
def XOR(A, B):
return A ^ B
# Function to simulate NOT Gate
def NOT(A):
return ~A+2
# Function to simulate XNOR Gate
def XNOR(A, B):
return NOT(XOR(A, B))
print("Output of 0 XNOR 0 is", XNOR(0, 0))
print("Output of 0 XNOR 1 is", XNOR(0, 1))
print("Output of 1 XNOR 0 is", XNOR(1, 0))
print("Output of 1 XNOR 1 is", XNOR(1, 1))
Выход:
Output of 0 XNOR 0 is 1
Output of 0 XNOR 1 is 0
Output of 1 XNOR 0 is 0
Output of 1 XNOR 1 is 1
Заключение
Реализация логических вентилей в Python очень проста. Как программист, вы должны знать о логических элементах и операторах в Python. Мы надеемся, что эта статья познакомила читателя с основами и выполнением логических вентилей в Python.
Для дальнейшего чтения ознакомьтесь с другими нашими руководствами по Python.