
- •Алгебра логики
- •Содержание
- •Определение[править | править исходный текст]
- •Аксиомы[править | править исходный текст]
- •Логические операции[править | править исходный текст]
- •Свойства логических операций[править | править исходный текст]
- •История[править | править исходный текст]
- •См. Также[править | править исходный текст] Булева алгебра
- •Содержание
- •Некоторые свойства[править | править исходный текст]
- •Основные тождества[править | править исходный текст]
- •Примеры[править | править исходный текст]
- •Принцип двойственности[править | править исходный текст]
- •Представления булевых алгебр[править | править исходный текст]
- •Аксиоматизация[править | править исходный текст]
- •См. Также[править | править исходный текст]
- •Примечания[править | править исходный текст]
- •Литература[править | править исходный текст]
- •Булева функция
- •Содержание
- •Основные сведения[править | править исходный текст]
- •Нульарные функции[править | править исходный текст]
- •Унарные функции[править | править исходный текст]
- •Бинарные функции[править | править исходный текст]
- •Тернарные функции[править | править исходный текст]
- •Полные системы булевых функций[править | править исходный текст]
- •Суперпозиция и замкнутые классы функций[править | править исходный текст]
- •Тождественность и двойственность[править | править исходный текст]
- •Полнота системы, критерий Поста[править | править исходный текст]
- •Представление булевых функций[править | править исходный текст]
- •Дизъюнктивная нормальная форма (днф)[править | править исходный текст]
- •Конъюнктивная нормальная форма (кнф)[править | править исходный текст]
- •Алгебраическая нормальная форма (анф или полином Жегалкина)[править | править исходный текст]
- •Классификация булевых функций[править | править исходный текст]
- •См. Также[править | править исходный текст]
- •Литература[править | править исходный текст]
- •Битовые операции
- •Содержание
- •Побитовые логические операции[править | править исходный текст]
- •Побитовое отрицание (not) [править | править исходный текст]
- •Побитовое и (and) [править | править исходный текст]
- •Побитовое или (or) [править | править исходный текст]
- •Сложение по модулю два (xor) [править | править исходный текст]
- •Другие побитовые логические операции[править | править исходный текст]
- •Битовые сдвиги[править | править исходный текст]
- •В теории сложности алгоритмов[править | править исходный текст]
- •Связь с другими науками[править | править исходный текст] Битовые операции и математическая логика[править | править исходный текст]
- •Обобщение операций на булеву алгебру[править | править исходный текст]
- •Битовые операции как основа цифровой техники[править | править исходный текст]
- •Практические применения[править | править исходный текст]
- •Физическая реализация битовых операций[править | править исходный текст]
- •Схемы аппаратной логики[править | править исходный текст]
- •Использование в программировании[править | править исходный текст]
- •См. Также[править | править исходный текст]
- •Примечания[править | править исходный текст]
- •Навигация
- •Двоичный сумматор[править | править исходный текст]
В теории сложности алгоритмов[править | править исходный текст]
Термин битовая операция, часто используется в области вычислений так называемыхбыстрых алгоритмов, которые изучают алгоритмы вычисления заданной функции с заданной точностью с использованием как можно меньшего числа битовых операций.
Битовая операциявтеории алгоритмовзапись знаков 0, 1, плюс, минус, скобка; сложение, вычитание и умножение двух битов (числа записаны в двоичной системе счисления)[8][9]. Используется для оценкисложности алгоритма.
Связь с другими науками[править | править исходный текст] Битовые операции и математическая логика[править | править исходный текст]
Битовые операции очень близки (хотя и не тождественны) логическим связкамвклассической логике. Бит можно рассматривать как логическоесуждение— его значениями являются 1 «истина» и 0 «ложь». При такой интерпретации известные в логикесвязкиконъюнкции,дизъюнкции,импликации,отрицанияи другие имеют представление на языке битов. И наоборот, битовые операции легко описываются на языкеисчисления высказываний.
Однако, связкам математической логики более соответствуют логические операциив том числе в программировании, нежели собственно битовые операции.
Обобщение операций на булеву алгебру[править | править исходный текст]
Вместо
одиночных битов мы можем рассмотреть
векторы из фиксированного количества
битов (в программировании их называют
регистрами), например, байты.
В программировании регистры рассматривают
как двоичное разложение целого числа:
,
гдеN— количество битов в регистре.
Тем не менее, ничто не мешает рассматривать эти регистры именно как битовые векторы и проводить булевые операции покомпонентно (бит номер kзначения есть результат операции от битов номерkаргументов). Кстати, математически говоря, булевы операции распространяются таким образом на произвольнуюбулеву алгебру. Таким образом мы получаем операциипобитовогоИ, ИЛИ, НЕ, искл. ИЛИ и т. д. Как арифметические, данные операции не обладают хорошими свойствами за исключением побитового НЕ, которое для чисел вдополнительном кодесовпадает с вычитанием из −1 (~x == -1-x). Однако, они очень полезны в программировании.
2-адическая интерпретация[править | править исходный текст]
Целое
число, записанное (в дополнительном
коде) в бесконечный (в сторону положительных
степеней двойки) двоичный регистр
является естественным объектом для
теории p-адических
чиселпри
.
Множество целых 2-адических чисел (то
есть произвольных бесконечных битовых
последовательностей) может быть
рассмотрено как булева алгебра точно
так же как и множество значений битового
регистра конечной длины. Все
вышеперечисленные битовые операции
оказываютсянепрерывными
отображениями. Хотя практическое
программирование не располагает
регистрами бесконечной длины, это не
мешает использовать данный теоретический
факт вкриптографиидля создания быстродействующих алгоритмов
шифрования.
Битовые операции как основа цифровой техники[править | править исходный текст]
Битовые операции лежат в основе обработки цифровых сигналов. А именно, посредством них мы можем из одного или нескольких сигналов на входе получить новый сигнал, который в свою очередь может быть подан на вход одной или нескольким таким операциям. По сути, именно битовые операции в сочетании с запоминающими элементами (напр.триггерами) реализуют всё богатство возможностей современной цифровой техники.