Арифметические и логические преобразования данных
Арифметико-логическое устройство (АЛУ) (англ. arithmetic and logic unit, ALU) — блок процессора, который под управлением устройства управления (УУ) служит для выполнения арифметических и логических преобразований (начиная от элементарных) над данными, называемыми в этом случае операндами. Разрядность операндов обычно называют размером машинного слова. Выполняемые АЛУ операции можно разделить на следующие группы: · операции двоичной арифметики для чисел с фиксированной запятой; · операции двоичной арифметики для чисел с плавающей запятой; · операции десятичной арифметики; · операции индексной арифметики; · операции специальной арифметики; · операции над логическими кодами; · операции над алфавитно-цифровыми полями. К арифметическим операциям относятся сложение, вычитание, взятие модулей ("короткие операции"), и умножение и деление ("длинные операции"). Группу логических операций составляют операции дизъюнкция (логическое ИЛИ) и конъюнкция (логическое И) над многоразрядными двоичными словами, а также операция сравнения кодов на равенство. Специальные арифметические операции включают в себя нормали- зацию, арифметический сдвиг (сдвигаются только цифровые разряды, а знаковый остается на месте), логический сдвиг (знаковый разряд сдвигается вместе с цифровыми). Рассмотрим арифметику двоичной системы счисления, так как именно она используется в современных компьютерах по следующим причинам: · существуют простейшие физические элементы, которые имеют только два состояния и которые можно интерпретировать как 0 им 1; · арифметическая обработка очень проста. Рассмотрим операцию сложения. Сложение двоичных чисел сводится к сложению цифр соответствующих разрядов с учетом переносов. При сложении двух двоичных чисел используются следующие четыре правила: 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 происходит перенос единицы в соседний (старший) разряд. Сложение - важнейшая операция в двоичной арифметике. Три другие арифметические операции над двоичными числами в компьютерах - вычитание, умножение, деление - осуществляются обычно с помощью сложения.
Вычитание. При вычитании двоичных чисел нужно помнить, что 0 - 0 = 0 1 - 0 = 1 0 - 1 = 1, занимаем единицу в соседнем (старшем) разряде 1 - 1 = 0
Умножение. При умножении двоичных чисел нужно помнить, что 0 х 0 = 0 1 х 0 = 0 0 х 1 = 0 1 х 1 = 1 Ввиду чрезвычайной простоты таблицы умножения в двоичной системе, умножение сводится лишь к сдвигам множимого и сложениям. Деление. Деление в двоичной системе счисления производится по тем же правилам, что и деление углом в десятичной системе. В двоичной системе деление выполняется особенно просто, ведь очередная цифра частного может быть только нулем или единицей. Логические операции. Высказывания бывают простые и сложные. Простые высказывания нельзя разделить на более мелкие высказывания, например: «Сейчас идет дождь» или «Форточка открыта». Сложные (составные) высказывания строятся из простых с помощью логических связок (операций) «И», «ИЛИ», «НЕ», «если…, то», «тогда и только тогда». В булевой алгебре высказывания обычно обозначаются латинскими буквами. Таким образом, мы уходим от конкретного содержания высказываний, нас интересует только их истинность или ложность. Операция «НЕ» Операция «НЕ» часто называется отрицанием или инверсией. В алгебре логики всего два знака, 0 и 1, поэтому логические отрицание - это переход от одного значения к другому, от 1 к 0 или наоборот. Если высказывание A истинно, то «не А» ложно, и наоборот. Для обозначения операции «НЕ» используется несколько способов. Выражение «не А» в алгебре логики записывается как В или А, в языках программирования Паскаль и Бейсик - как not A, в языке Си - как!A. Операцию «НЕ» можно задать в виде таблицы:
Эта таблица состоит из двух частей: слева перечисляются все возможные значения исходного сигнала (их всего два - 0 и 1), а в последнем столбце записывают результат выполнения логической операции для каждого из этих вариантов. Такая таблица называется таблицей истинности логической операции. Операция «И» Операция «И» (в отличие от «НЕ») выполняется с двумя логическими значениями, которые мы обозначим как A и B. Результат этой операции в алгебре логики записывают как А?B, АB. В таблице истинности будет уже не один столбец с исходными данными, а два.
Число строк также выросло с 2 до 4, поскольку для 2 бит мы получаем 4 разных комбинации: 00, 01, 10 и 11. Эти строчки расположены в определенном порядке: двоичные числа, полученные соединением битов A и B, идут в порядке возрастания (слева от таблицы они переведены в десятичную систему). Как следует из определения, в последнем столбце будет всего одна единица, для варианта A = B = 1. Легко проверить, что этот результат можно получить «обычным» умножением A на B, поэтому операцию «И» называют логическим умножением. Существует и другое название этой операции - конъюнкция (от латинского conjunctio - союз, связь). Операция «ИЛИ» Операцию «ИЛИ» называют логическим сложением, потому что она похожа на обычное математическое сложение. Единственное отличие - в последней строке таблицы истинности: в математике 1+1 равно 2, а в алгебре логики - 1.
Другое название операции «ИЛИ» - дизъюнкция (от латинского disjunctio - разделение). В учебнике для обозначения операций «И» и «ИЛИ» мы будем использовать знаки умножения и сложения (например, А?B и А+B). Это очень удобно потому, что они привычны для нас и позволяют легко увидеть аналогию с обычной математикой.
|