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

Логические вентили в 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.