Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВС_Лек4_2013 / ИнтернентСсылкиАссемблерЛогика.doc
Скачиваний:
24
Добавлен:
10.05.2015
Размер:
1.11 Mб
Скачать

В теории сложности алгоритмов[править | править исходный текст]

Термин битовая операция, часто используется в области вычислений так называемыхбыстрых алгоритмов, которые изучают алгоритмы вычисления заданной функции с заданной точностью с использованием как можно меньшего числа битовых операций.

Битовая операциявтеории алгоритмовзапись знаков 0, 1, плюс, минус, скобка; сложение, вычитание и умножение двух битов (числа записаны в двоичной системе счисления)[8][9]. Используется для оценкисложности алгоритма.

Связь с другими науками[править | править исходный текст] Битовые операции и математическая логика[править | править исходный текст]

Битовые операции очень близки (хотя и не тождественны) логическим связкамвклассической логике. Бит можно рассматривать как логическоесуждение— его значениями являются 1 «истина» и 0 «ложь». При такой интерпретации известные в логикесвязкиконъюнкции,дизъюнкции,импликации,отрицанияи другие имеют представление на языке битов. И наоборот, битовые операции легко описываются на языкеисчисления высказываний.

Однако, связкам математической логики более соответствуют логические операциив том числе в программировании, нежели собственно битовые операции.

Обобщение операций на булеву алгебру[править | править исходный текст]

Вместо одиночных битов мы можем рассмотреть векторы из фиксированного количества битов (в программировании их называют регистрами), например, байты. В программировании регистры рассматривают как двоичное разложение целого числа: , гдеN— количество битов в регистре.

Тем не менее, ничто не мешает рассматривать эти регистры именно как битовые векторы и проводить булевые операции покомпонентно (бит номер kзначения есть результат операции от битов номерkаргументов). Кстати, математически говоря, булевы операции распространяются таким образом на произвольнуюбулеву алгебру. Таким образом мы получаем операциипобитовогоИ, ИЛИ, НЕ, искл. ИЛИ и т. д. Как арифметические, данные операции не обладают хорошими свойствами за исключением побитового НЕ, которое для чисел вдополнительном кодесовпадает с вычитанием из −1 (~x == -1-x). Однако, они очень полезны в программировании.

2-адическая интерпретация[править | править исходный текст]

Целое число, записанное (в дополнительном коде) в бесконечный (в сторону положительных степеней двойки) двоичный регистр является естественным объектом для теории p-адических чиселпри . Множество целых 2-адических чисел (то есть произвольных бесконечных битовых последовательностей) может быть рассмотрено как булева алгебра точно так же как и множество значений битового регистра конечной длины. Все вышеперечисленные битовые операции оказываютсянепрерывными отображениями. Хотя практическое программирование не располагает регистрами бесконечной длины, это не мешает использовать данный теоретический факт вкриптографиидля создания быстродействующих алгоритмов шифрования.

Битовые операции как основа цифровой техники[править | править исходный текст]

Битовые операции лежат в основе обработки цифровых сигналов. А именно, посредством них мы можем из одного или нескольких сигналов на входе получить новый сигнал, который в свою очередь может быть подан на вход одной или нескольким таким операциям. По сути, именно битовые операции в сочетании с запоминающими элементами (напр.триггерами) реализуют всё богатство возможностей современной цифровой техники.