Логические операции (and, or, xor, not): таблицы истинности
Бит — это минимальная единица измерения объёма информации, так как она хранит одно из двух значений — 0 (False) или 1 (True). False и True в переводе на русский ложь и истина соответственно. То есть одна битовая ячейка может находиться одновременно лишь в одном состоянии из возможных двух. Напомню, два возможных состояния битовой ячейки равны — 1 и 0.
Есть определённые операции, для манипуляций с битами. Эти операции называются логическими или булевыми операциями, названные в честь одного из математиков — Джорджа Буля (1815-1864), который способствовал развитию этой области науки.
Все эти операции могут быть применены к любому биту, независимо от того, какое он имеет значение — 0(нуль) или 1(единицу). Ниже приведены основные логические операции и примеры их использования.
Логическая операция И (AND)
Обозначение AND: &
Логическая операция И выполняется с двумя битами, назовем их a и b. Результат выполнения логической операции И будет равен 1, если a и b равны 1, а во всех остальных (других) случаях, результат будет равен 0. Смотрим таблицу истинности логической операции and.
a(бит 1) | b(бит 2) | a(бит 1) & b(бит 2) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Логическая операция ИЛИ (OR)
Обозначение OR: |
Логическая операция ИЛИ выполняется с двумя битами (a и b). Результат выполнения логической операции ИЛИ будет равен 0, если a и b равны 0 (нулю), а во всех остальных (других) случаях, результат равен 1 (единице). Смотрим таблицу истинности логической операции OR.
a(бит 1) | b(бит 2) | a(бит 1) | b(бит 2) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Логическая операция исключающее ИЛИ (XOR).
b(бит 2)Логическая операция НЕ (not)
Обозначение NOT: ~
Логическая операция НЕ выполняется с одним битом. Результат выполнения этой логической операции напрямую зависит от состояния бита. Если бит находился в нулевом состоянии, то результат выполнения NOT будет равен единице и наоборот. Смотрим таблицу истинности логической операции НЕ.
a(бит 1) | ~a(отрицание бита) |
---|---|
0 | 1 |
1 | 0 |
Запомните эти 4 логические операции. Используя эти логические операции, мы можем получить любой возможный результат. Подробно об использовании логических операций в С++ читаем тут.
Page not found – Сайт skobelevserg!
- Главная
- Информатика
- Практикумы
- Подготовка к ОГЭ
- Рабочие программы
- Используемая литература
- Об авторах
Unfortunately the page you’re looking doesn’t exist (anymore) or there was an error in the link you followed or typed. This way to the home page.
- Главная
- Информатика
- 5 класс (ФГОС)
- Информация вокруг нас
- Компьютер – универсальная машина для работы с информацией
- Ввод информации в память компьютера
- Управление компьютером
- Хранение информации
- Передача информации
- Кодирование информации
- Текстовая информация
- Представление информации в виде таблиц
- Наглядные формы представления информации
- Компьютерная графика
- Обработка информации
- 6 класс (ФГОС)
- Объекты окружающего мира
- Компьютерные объекты
- Отношения объектов и их множеств
- Разновидности объектов и их классификация
- Системы объектов
- Персональный компьютер как система
- Как мы познаем окружающий мир
- Понятие как форма мышления
- Информационное моделирование
- Знаковые информационные модели
- Табличные информационные объекты
- Графики и диаграммы
- Схемы
- Что такое алгоритм
- Исполнители вокруг нас
- Формы записи алгоритмов
- Типы алгоритмов
- Управление исполнителем Чертежник
- Компьютерный практикум
- 7 класс (ФГОС)
- Информация и информационные процессы
- Компьютер универсальное устройство для работы с информацией
- Обработка графической информации
- Обработка текстовой информации
- Технология мультимедиа
- 8 класс (ФГОС)
- Математические основы информатики
- Основы алгоритмизации
- Начала программирования
- 9 класс (ФГОС)
- Моделирование и формализация
- Алгоритмизация и программирование
- Обработка числовой информации в электронных таблицах
- Коммуникационные технологии
- 10 класс (ФГОС)
- Информация и информационные процессы
- Компьютер и его программное обеспечение
- Представление информации в компьютере
- Элементы теории множеств и алгебры логики
- Современные технологии создания и обработки информационных объектов
- 11 класс (ФГОС)
- Обработка информации в электронных таблицах
- Алгоритмы и элементы программирования
- Информационное моделирование
- Сетевые информационные технологии
- Основы социальной информатики
- Безопасность в сети Интернет
- Практикумы
- Google формы
- Основы работы в Microsoft PowerPoint
- Создание анимации в презентациях
- Основы работы в Microsoft Word
- Основы работы в Microsoft Excel
- Создание простейшей базы данных
- Практикум по MS Excel
- Подготовка к ОГЭ
- Рабочие программы
- Используемая литература
- Об авторах
- Блоги
- Сайты
(справочник Simulink) Логический оператор
(справочник Simulink)Ссылка Simulink |
Выполнить заданную логическую операцию над входом
Библиотека
Математические операции Simulink и логика и сравнение блоков с фиксированной точкой
Описание
Блок логического оператора выполняет указанную логическую операцию на своих входах. Входное значение ИСТИНА (1), если оно не равно нулю, и ЛОЖЬ (0), если оно равно нулю.
Вы выбираете булеву операцию, соединяющую входы со списком параметров Оператор . Значок блока обновляется, отображая выбранного оператора. Поддерживаемые операции приведены ниже.
Эксплуатация | Описание |
И | ИСТИНА, если все входы ИСТИНА |
ИЛИ | ИСТИНА, если хотя бы один вход ИСТИНА |
И-НЕ | ИСТИНА, если хотя бы один вход имеет значение ЛОЖЬ |
НО | ИСТИНА, если нет входных данных ИСТИНА |
Исключающее ИЛИ | ИСТИНА, если нечетное количество входов ИСТИНА |
НЕ | ИСТИНА, если ввод ЛОЖЬ |
Количество входных портов задается параметром Количество входных портов . Тип вывода указывается с помощью Режим выходных данных и/или параметры Тип выходных данных . Выходное значение равно 1, если TRUE, и 0, если FALSE.
Размер вывода зависит от размера входного вектора и выбранного оператора:
- Если блок имеет более одного входа, все нескалярные входы должны иметь одинаковые размерности. Например, если какой-либо вход представляет собой массив 2 на 2, все остальные нескалярные входы также должны быть массивами 2 на 2.
- Скалярные входы расширяются, чтобы иметь те же размеры, что и нескалярные входы.
Если блок имеет более одного входа, выход имеет те же размерности, что и входы (после скалярного расширения), и каждый выходной элемент является результатом применения указанной логической операции к соответствующим входным элементам. Например, если задана операция И, а входные данные представляют собой массивы 2 на 2, на выходе будет массив 2 на 2, верхний левый элемент которого является результатом применения И к верхним левым элементам входных данных и т. д.
- Для одного входного вектора блок применяет операцию (кроме оператора НЕ) ко всем элементам вектора. Выход всегда является скаляром.
- Оператор НЕ принимает только один вход, который может быть скаляром или вектором. Если вход представляет собой вектор, выход представляет собой вектор того же размера, содержащий логические дополнения элементов входного вектора.
При настройке в качестве вентиля XOR с несколькими входами этот блок выполняет операцию сложения по модулю два в соответствии со стандартом IEEE для логических элементов.
Когда установлен флажок Показать дополнительные параметры , некоторые параметры, которые становятся видимыми, являются общими для многих блоков. Для подробного описания этих параметров обратитесь к Block Parameters в документации Fixed-Point Blockset.
Поддержка типов данных
Блок логического оператора принимает действительные или комплексные сигналы любого типа данных, кроме int64
и uint64
.
Логический
, ввод может быть только логическим
или двойным
. Параметры и диалоговое окно
- Оператор
- Логический оператор, применяемый к входам блока. Допустимыми вариантами являются операторы, перечисленные ранее.
- Количество входных портов
- Количество входов блока. Значение должно соответствовать выбранному оператору.
- Показать дополнительные параметры
- Если выбрано, дополнительные параметры, характерные для реализации блока, становятся видимыми, как показано.
- Требовать, чтобы все входы и выходы имели одинаковый тип данных
- Выберите, чтобы все входные и выходные данные имели один и тот же тип данных.
- Режим типа выходных данных
- Задайте для типа выходных данных значение
Boolean
или укажите тип данных с помощью параметра Тип выходных данных . - В качестве альтернативы можно выбрать
Logical
, чтобы тип выходных данных определялся параметром Boolean Logic Signals на вкладке Advanced интерфейса параметров моделирования. Если вы выберетеLogical
и Boolean Logic Signals равнона
, тогда тип выходных данных всегда будетBoolean
. Если вы выберетеLogical
и Boolean Logic Signalsoff
, то тип выходных данных будет соответствовать типу входных данных, который может бытьBoolean
илиdouble
. - Тип выходных данных
- Тип выходных данных. Вы должны использовать только те типы данных, которые точно представляют ноль. Типы данных, удовлетворяющие этому условию, включают целые числа со знаком и без знака, а также любой тип данных с плавающей запятой. Этот параметр виден, только если
Указать в диалоговом окне
выбрано для параметра Режим типа выходных данных .
Характеристики
Размеры | Да | ||||||||||||||||||||||||||||||
Прямой ввод | Да | ||||||||||||||||||||||||||||||
Время выборки | Унаследовано от приводного блока | ||||||||||||||||||||||||||||||
Скалярное расширение | Входов | ||||||||||||||||||||||||||||||
Пересечение нуля | № | Интерполяционная таблица Программирование на языке R: от Zero до Pro В последнем разделе вы узнали, как выполнить подмножество вектора, которое дает подвектор исходного вектора. Возьмем, к примеру, числовой вектор х <- 1:5 хb3 <- х > 3 набор1 <- х[xb3] набор1 #> [1] 4 5 Здесь числовой вектор xs4 <- x <= 4 набор2 <- х[xs4] Иногда вам может понадобиться получить подвектор с более чем одним условием. Например, как мы можем найти подвектор Прежде чем мы начнем, давайте создадим еще один числовой вектор г <- 6:10 yb8 <- y > 8 #xb3 совпадает с yb8 ys9 <- y <= 9 #xs4 то же, что и ys9 2.7.1 Оператор НЕ по ! Первый оператор, который мы хотим ввести, это
Давайте посмотрим, что произойдет, если вы примените оператор НЕ к логическому вектору. !c(ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ИСТИНА, ИСТИНА) # противоположность логического вектора #> [1] TRUE TRUE TRUE FALSE FALSE В результате вы получите еще один логический вектор той же длины, что и исходный. Значение каждого элемента в новом векторе равно напротив соответствующего значения в исходном векторе. Поскольку !xb3 #> [1] ИСТИНА ИСТИНА ИСТИНА ИСТИНА ЛОЖЬ ЛОЖЬ set3 <- х[!xb3] набор3 #> [1] 1 2 3 Конечно, результирующий числовой вектор Из раздела 2.6 вы узнали, что если используемые вами логические векторы идентичны, вы получите тот же результат после выполнения поднабора векторов. Таким образом, если вы используете х[!yb8] #> [1] 1 2 3 2.7.2 Оператор И для и Во-вторых, мы введем оператор И
Давайте рассмотрим пример операции И между двумя логическими векторами одинаковой длины. c(ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ИСТИНА, ИСТИНА) & c(ИСТИНА, ИСТИНА, ЛОЖЬ, ИСТИНА, ЛОЖЬ) #> [1] FALSE FALSE FALSE TRUE FALSE Как объяснялось ранее, оператор AND работает поэлементно, а промежуточный шаг описан ниже. c(ЛОЖЬ И ИСТИНА, ЛОЖЬ и ИСТИНА, ЛОЖЬ и ЛОЖЬ, ИСТИНА и ИСТИНА, ИСТИНА и ЛОЖЬ) #> [1] FALSE FALSE FALSE TRUE FALSE Как видно из результата, только четвертый элемент равен Так как оператор И выполняет сравнения поэлементно, здесь также работает правило повторного использования . Но обычно нам нужен один вектор с длиной > 1 и другой с длиной 1. c(FALSE, FALSE, FALSE, TRUE, TRUE) & FALSE #> [1] FALSE FALSE FALSE FALSE FALSE FALSE Изучив оператор AND, вы теперь можете легко получить подвектор xb3 и xs4 #> [1] FALSE FALSE FALSE TRUE FALSE Из результата вы знаете, что и х[хb3 и хs4] #> [1] 4 Здесь вы получаете подвектор Поскольку х[xb3 и ys9] x[yb8 & ys9] Обратите внимание, что логический вектор, используемый для подмножества векторов, должен иметь размер той же длины , что и исходный вектор. Поскольку у [xb3 и xs4] у[yb8 и ys9] у[xb3 и ys9] y[yb8 & xs4] 2.7.3 Оператор ИЛИ by | Оператор ИЛИ
Давайте попробуем еще один пример с векторами длины > 1 и сравним результат с тем, когда мы используем оператор И c(ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ИСТИНА, ИСТИНА) | в(ИСТИНА, ИСТИНА, ЛОЖЬ, ИСТИНА, ЛОЖЬ) #> [1] ИСТИНА ИСТИНА ЛОЖЬ ИСТИНА ИСТИНА c(ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ИСТИНА, ИСТИНА) & c(ИСТИНА, ИСТИНА, ЛОЖЬ, ИСТИНА, ЛОЖЬ) #> [1] FALSE FALSE FALSE TRUE FALSE Вы также получаете логический вектор длины 5 с помощью поэлементной операции ИЛИ Конечно, вы также можете использовать х[хb3 | xs4] #> [1] 1 2 3 4 5 Вау! Вы получаете все пять элементов 2.7.4 Исключающее ИЛИ с помощью xor И последнее, но не менее важное: мы вводим исключающее ИЛИ оператор
В отличие от оператора ИЛИ, Для двух векторов длины > 1 xor(c(ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ИСТИНА, ИСТИНА), c(ИСТИНА, ИСТИНА, ИСТИНА, ИСТИНА, ЛОЖЬ)) #> [1] TRUE TRUE TRUE FALSE TRUE Поскольку вы также получаете логический вектор после применения х[хили(хb3, хs4)] у[xor(!xb3, ys9)] y[xor(yb8, !ys9)] 2.7.5 Обзор логических операторовДавайте суммируем логические операторы между двумя векторами.
|