Подключиться через MCP →

Введите расчет

Математическая формула

Реклама

Результатов

A NOR B = ~(A | B)
241
8-bit unsigned · binary 11110001
Значение A 12
Значение B 10
A | B (ИЛИ) 14
NOR (десятичное) 241
NOR (двоичное) 11110001

Что делает калькулятор ИЛИ-НЕ (NOR)?

Этот инструмент вычисляет побитовое ИЛИ-НЕ двух целых чисел по формуле результат = ~(A | B). Операция NOR (от «NOT OR» — «не ИЛИ») — одна из базовых логических операций. Сначала выполняется ИЛИ для каждой пары соответствующих битов, а затем результат инвертируется. Бит на выходе равен 1 только тогда, когда оба входных бита равны 0. NOR является функционально полной операцией: из одних только элементов ИЛИ-НЕ можно построить любой другой логический вентиль — именно поэтому она так важна в цифровой электронике.

Как пользоваться калькулятором

Введите два целых числа (A и B) и выберите разрядность (8, 16, 32 или 64 бита). Калькулятор покажет результат NOR как беззнаковое значение этой разрядности, а также промежуточное значение ИЛИ и двоичное представление. Выбор меньшей разрядности просто отбрасывает старшие биты с помощью маски — это удобно, когда вы моделируете регистры фиксированной длины.

Разбор формулы

$$\text{NOR} = \sim\left(\text{A} \mathbin{|} \text{B}\right) \mathbin{\&} \left(2^{\text{Bits}} - 1\right)$$

Результат ИЛИ для двух битов равен 1, если хотя бы один из них равен 1. NOR инвертирует это значение, поэтому каждый бит подчиняется таблице истинности: 0 NOR 0 = 1, 0 NOR 1 = 0, 1 NOR 0 = 0, 1 NOR 1 = 0. Поскольку «чистая» инверсия (~) устанавливает все старшие биты в 1, мы накладываем на результат маску \(2^{n}-1\), чтобы он оставался в пределах выбранной беззнаковой разрядности.

Два 8-битных двоичных числа, объединённых NOR, дают строку результата инвертированного OR
Побитовое NOR сравнивает каждую пару битов: выходной бит равен 1 только когда оба входных бита равны 0.

Пример расчёта

Пусть A = 12 (в двоичном виде 1100) и B = 10 (в двоичном виде 1010) при разрядности 8 бит. Тогда \(\text{A} \mathbin{|} \text{B} = 1110 = 14\). Инвертируя в пределах 8 бит, получаем \(11110001 = 241\). Итак, $$12 \text{ NOR } 10 = 241$$ при 8-битной разрядности.

Сетка таблицы истинности NOR с двумя входами, входными битами и итоговым выходным битом
Таблица истинности NOR: выход равен 1 только для пары входов 0,0.

Частые вопросы

Почему результат меняется при смене разрядности? Инверсия переворачивает каждый бит, поэтому число ведущих единиц зависит от того, сколько битов отведено под число. Чем больше разрядность, тем больше беззнаковый результат.

Можно ли использовать отрицательные числа? Входные данные обрабатываются как целые числа; для корректных результатов используйте неотрицательные целые в пределах выбранной разрядности.

Это то же самое, что NAND? Нет. NAND — это \(\sim(\text{A} \mathbin{\&} \text{B})\) («не И»), а NOR — это \(\sim(\text{A} \mathbin{|} \text{B})\) («не ИЛИ»). Обе операции универсальны, но дают разные результаты.

Таблица истинности операции NOR и маски битовой ширины

Побитовая операция NOR комбинирует два операнда бит за битом. Для каждой пары битов она сначала вычисляет OR, затем инвертирует результат. Иными словами, выходной бит равен 1 только тогда, когда оба входных бита равны 0; во всех остальных случаях выходной бит равен 0. Это отрицание операции OR, отсюда и название NOR (NOT-OR).

Таблица истинности однобитовой операции NOR: результат = ~(A | B)
A B A | B NOR = ~(A | B)
0 0 0 1
0 1 1 0
1 0 1 0
1 1 1 0

Поскольку операция NOT инвертирует каждый бит, результат зависит от выбранной битовой ширины. После выполнения OR операндов и инверсии значение маскируется до ширины \(n\) с использованием \(2^{n}-1\), так что остаются только самые младшие \(n\) битов. Маски для каждой поддерживаемой ширины показаны ниже.

Битовые ширины и их маски без знака \(2^{n}-1\)
Битовая ширина \(n\) Маска \(2^{n}-1\) (десятичное) Максимальное значение без знака
8 255 255
16 65535 65535
32 4294967295 4294967295
64 18446744073709551615 18446744073709551615

Например, с \(A = 12\) и \(B = 10\) при 8-битовой ширине: \(12 | 10 = 14\), а \(\sim 14\) в маске 8 битов дает 241. Промежуточный результат OR \(12 | 10 = \) 14 можно проверить независимо.

Ключевые термины

Побитовая операция NOR
Операция, которая производит результат, каждый бит которого равен 1 только тогда, когда соответствующие биты обоих операндов равны 0. Она определяется как инверсия результата OR: \(\text{NOR} = \sim(A | B)\).
OR (побитовая)
Операция, которая устанавливает каждый бит результата в 1, если по крайней мере один из двух соответствующих входных битов равен 1, и в 0 только когда оба равны 0.
NOT / инверсия (~)
Унарная операция, которая переворачивает каждый бит: каждый 0 становится 1, а каждый 1 становится 0. При операции NOR она применяется к результату OR, и её эффект ограничен выбранной битовой шириной.
Битовая ширина
Количество битов, используемых для представления значения (здесь 8, 16, 32 или 64). Она определяет, сколько битов инвертированный результат сохранит, и следовательно, числовой диапазон выходного значения.
Маскирование
Использование побитовой операции AND со значением вроде \(2^{n}-1\) для сохранения только самых младших \(n\) битов и отбрасывания старших битов. Это ограничивает результат NOR выбранной шириной.
Целое число без знака
Представление целого числа без бита знака, поэтому все битовые комбинации представляют неотрицательные значения от 0 до \(2^{n}-1\). Результат NOR выводится как значение без знака.
Функционально полный (универсальный) элемент
Логический элемент, из которого можно построить любую булеву функцию, используя только копии самого себя. NOR функционально полный: AND, OR и NOT можно построить исключительно из элементов NOR, поэтому он называется универсальным элементом.
Последнее обновление: