Арифметические и логические основы работы эвм системы счисления. Арифметические и логические основы построения ЭВМ Арифметические и логические основы построения вычислительных машин

В цифровых устройствах приходится иметь дело с различными видами информации. Это в чистом виде двоичная информация, такая как включен прибор или выключен, исправно устройство или нет. Информация может быть представлена в виде текстов, и тогда приходится буквы алфавита кодировать при помощи двоичных уровней сигнала. Достаточно часто информация может представлять собой числа. Числа могут быть представлены в различных системах счисления. Форма записи в них чисел существенно различается между собой, поэтому, прежде чем перейти к особенностям представления чисел в цифровой технике, рассмотрим их запись в различных системах счисления.

Системы счисления

Система счисления - это совокупность приемов и правил для представления чисел с помощью цифровых знаков.

Существует множество способов записи чисел цифровыми знаками, но любая применяемая система счисления должна обеспечивать:

  • диапазон представления любого числа;
  • единственность представления (каждой комбинации символов соответствует только одна величина).

Все системы счисления делятся на позиционные и непозиционные. В непозиционной системе счисления значимость цифры в любом месте числа одинакова, т.е. не зависит от позиции расположения. Например, унарная система с одним символом, равным единице. Такая система счисления предназначена для суммарного счета (узелки на «память», зарубки, черточки, счет на пальцах и пр.). Для изображения какого-то числа в этой системе нужно записать число единиц (палочек), равное данному числу. Эта система неэффективна, так как запись числа получается слишком длинной.

Другой пример «почти непозиционной» системы счисления - римская система счета. В римской системе счета используются следующие символы:

I - 1; V - 5; X - 10; Ь - 50; С - 100; 0-500; М - 1000.

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

Пример перевода из римской системы в арабскую систему счисления:

ССХУУП =100+100+10 + 5 + 5+1 + 1= 222;

Х1Х1У= 10 + (10 - 1) = 19.

Как следует из правила перевода, римская система полностью не является непозиционной. Эта система применяется редко (циферблат, архитектура, история и т.д.).

Позиционные системы счисления - это системы счисления, в которых значение цифры в записи числа N зависит от ее позиции (места). Например, в десятичной системе счисления число 05 обозначает пять единиц, 50 обозначает пять десятков, 500 - пять сотен и т.д.

Основание (базис) системы счисления (ц) - это количество используемых знаков или символов для изображения цифр в данной системе счисления.

Возможно бесчисленное множество позиционных систем счисления, так как за основание можно принять любое число и образовать новую систему счисления.

Примеры некоторых позиционных систем счисления и их применение приведены в табл. 2.1.

В табл. 2.2 для удобства сопоставления приведены первые 23 числа натурального ряда чисел в различных системах счисления.

Как видно из табл. 2.2, для записи одного и того же числа в различных системах счисления требуется разное число позиций или разрядов. Например, 14 |0 = 1 1 10 2 = 16 8 = Е [в. То есть в десятичной системе счисления число 14 занимает две позиции (два разряда), в двоичной системе счисления - четыре позиции, в шестнадцатеричной системе счисления - одну позицию. Чем меньше основание системы счисления

Примеры позиционных систем счисления

Наименование

счисления

Основание

счисления

Используемые

Применение

Двоичная

В цифровой вычислительной технике, дискретной математике, программировании

Троичная

Любые три знака: (-, 0,+), (-1,0,+1), (А, В , С), (X, У, Т) или три цифры: (1,2, 3)

В цифровой электронике

Восьмеричная

Десятичная

Повсеместное

Шестнадцате

А, В, С,Т

В цифровой вычислительной технике, программировании

Шестидесяте

00, 01,02,..., 59

Как единицы измерения времени, измерения углов, координат,

долготы и широты

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

Пусть длина разрядной сетки равна положительному числу./V, максимальное число равно

?^((Дтах - Я ~ 1

Например, при N = 8:

Лю)тах = Ю 8 - 1 = 9999999 (| 0) ;

Л(2)тах - 2 8 - 1 = 256 - 1 = 257 (|0) =1111111 (2) ;

А ( 1 6)тах = 16 8 - 1 =4294967296 - 1 = 4294967295 (10) = РРРРРРР (16) .

Таким образом, при одинаковой длине разрядной сетки N=8 максимальное по абсолютному значению Л (16)П1ах > Л (10)П1ах > Л (2)гпах, т.е. чем больше #, тем больше Л ((?)тах.

Натуральный ряд чисел в различных системах счисления

Десятичная

Двоичная

Восьмеричная

Шестнадцатеричная

Перевод в позиционных системах счисления

Перевод в десятичную систему счисления. Любое число N в позиционной системе счисления можно представить в виде полинома

Для перевода в десятеричную систему вычисляем такую сумму.

Например, число 253,24 10 в обычной десятичной форме (

Пример 2.1. Двоичное число 1101,01(2) перевести в десятичную систему счисления.

В двоичной системе счисления для представления чисел используются две цифры 0 И 1 И двоичное ЧИСЛО 1 1 01,012 (

ТУ 2 = 1101,01 2 = 1 2 3 + 1 2 2 + 0 2 + 1 2° + 0 2 _| + 1 2 -2 =

“=8 + 4 + 0+1+0+1/4= 14,25 10 .

Если по правилам десятичной арифметики выполнить действия в правой части приведенного равенства, то получим десятичный эквивалент двоичного числа:

1101,01 2 = 8 + 4 + 0+ 1 +0 + 1/4 = 14,25 10 .

Пример 2.2. Восьмеричное число 53,2 8 (# = 8) перевести в десятичную систему счисления:

2560 + 240 + 7 + 8/16 = 2807,25 10 .

Перевод чисел из десятичной системы счисления в произвольную систему счисления с основанием Правила перевода целой части десятичного числа заключается в следующем. Целую часть десятичного числа необходимо последовательно делить на ц (основание произвольной системы счисления) до тех пор, пока десятичное число не станет равным нулю. Остатки, полученные при делении и записанные в последовательности, начиная с последнего остатка, являются цифрами числа ^-ричной системы счисления.

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

Целые части результатов умножения в порядке, соответствующем их получению, составляют число в новой системе.

Пример 2.4. Число 26,625 10 перевести в двоичную систему счисления.

Переводим целую часть числа:

  • 26: 2 = 13, остаток равен 0;
  • 13:2 = 6, остаток равен 1;
  • 6:2 = 3, остаток равен 0;
  • 3:2=1, остаток равен 1;
  • 1: 2 = 0, остаток равен 1.

Десятичное число стало равно нулю, деление закончено. Переписываем все остатки снизу вверх и получаем двоичное число 11010 2 .

  • 0,625 2 = 1,250, целая часть 1;
  • 0,250 2 = 0,500, целая часть 0;
  • 0,500 2 = 1,000, целая часть 1;
  • 0,000 2 = 0,000, целая часть 0.

Целая часть стала равной нулю. Переписываем целые части результатов умножения сверху вниз и получаем двоичное число 0,1010 2 .

Пример 2.5. Число 70,05 10 перевести в восьмеричную систему счисления с точностью по 4-й разряд.

Переводим целую часть числа:

  • 70: 8 = 8, остаток равен 6;
  • 8:8=1, остаток равен 0;
  • 1: 8 = 0, остаток равен 1.

Десятичное число стало равно нулю, деление закончено. Переписываем все остатки снизу вверх и получаем восьмеричное число 106 8 .

Переводим дробную часть числа:

  • 0,05 8 = 0,40, целая часть 0;
  • 0,40 8 = 3,20, целая часть 3;
  • 0,30 8 = 2,40, целая часть 2;
  • 0,40 8 = 3,20, целая часть 3.

Целая часть не стала равной нулю, получается бесконечный ряд, процесс перевода заканчиваем, так как достигнута заданная точность. Переписываем целые части результатов умножения сверху вниз и получаем восьмеричное число 0,0323 8 .

Пример 2.6. Число 76,05 10 перевести в шестнадцатеричную систему счисления с точностью по 4-й разряд.

Переводим целую часть числа:

  • 76: 16 = 4, остаток равен 12 -» С;
  • 4: 16 = 0, остаток равен 4.

Десятичное число стало равно нулю, деление закончено. Переписываем все остатки снизу вверх и получаем шестнадцатеричное число 4С 16 .

Переводим дробную часть числа:

  • 0,05 16 = 0,80, целая часть 0;
  • 0,80 16 = 12,80, целая часть 12 -> С;
  • 0,80 16 = 12,80, целая часть 12 -> С;
  • 0,80 -16= 12,80, целая часть 12 -> С.

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

Пример 2.7. Число 6610 перевести в произвольную систему счисления, например с основанием ц = 5.

Переводим целую часть числа:

  • 66: 5 = 13, остаток равен 1;
  • 13:5 = 2, остаток равен 3;
  • 2:5 = 0, остаток равен 2.

Десятичное число стало равно нулю, деление закончено. Переписываем все остатки снизу вверх и получаем пятеричное число 231 5 .

Перевод из двоичной системы в восьмеричную и шестнадцатеричную. Для этого типа операций существует упрощенный алгоритм.

Перевод целой части. Число 2 возводится в ту степень, которая необходима для получения основания системы, в которую требуется перевести. Для восьмеричной системы (8 = 23) получаем число 3 (триада), для шестнадцатеричной системы (16 = 24) получаем число 4 (тетрада).

Разбиваем переводимое число на количество цифр, равное 3 для восьмеричной системы и равное 4 для шестнадцатеричной системы счисления.

Преобразуем триады по таблице триад восьмеричной системы и тетрады по таблице тетрад для шестнадцатеричной системы счисления (табл. 2.3).

Пример 2.8. Двоичное число 101110 2 перевести в восьмеричную и шестнадцатеричную системы счисления:

  • восьмеричная - 101 110 -> 56 8 ;
  • шестнадцатеричная - 0010 1110 -> 2Е ]в.

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

Таблица триад и тетрад

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

Пример 2.9. Перевести 11101,01011 2 в восьмеричную и шестнадцатеричную системы счисления:

  • восьмеричная - 011 101,010 110 -> 35,26 8 ;
  • шестнадцатеричная - 0001 1101,0101 1000 -> 1Z),58, 6 .

Перевод из восьмеричной и шестнадцатеричной систем в двоичную.

Для этого типа операций существует упрощенный алгоритм-перевертыш. Для восьмеричной системы преобразуем по таблице в триплеты: 0->000 4 -> 100;

  • 1 -> 001 5 -> 101;
  • 2 -> 010 6 -> 110;
  • 3 -> 011 7 -> 111.

Для шестнадцатеричной - преобразуем по таблице в квартеты:

А -> 1010

В -> 1011

Пример 2.10. Перевести восьмеричное число 2438 и шестнадцатеричное число7С 16 в двоичную систему счисления:

  • 243 8 -> ПО 100011 2 ;
  • 7С 16 -> 1111 1100 2 .

Двоичная арифметика

Сложение. Таблица сложения двоичных чисел проста:

  • 0 + 0 = 0;
  • 0+1 = 1;
  • 1+0=1;
  • 1 + 1 = 10;
  • 1 + 1 + 1 = 11.

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

Пример 2.11. Выполнить сложение в двоичной системе счисления.

1 1 1 Перенос в старший разряд

1 1 0 0 0 1 = 49 - первое слагаемое

  • 1 1 0 1 1 = 27 - второе слагаемое
  • 1 0 0 1 1 0 0 = 76 - сумма

Двоичное вычитание. Рассмотрим правила вычитания меньшего числа из большего. В простейшем случае для каждого разряда правила двоичного вычитания имеют вид

  • 2 2 11
  • 0 10 1

Когда производится вычитание (0 - 1), осуществляется заем из более старшего разряда. Знак вопроса означает, что разряд уменьшаемого изменяется в результате займа по правилу: при вычитании (0-1) в разряде разности получается единица, разряды уменьшаемого, начиная со следующего, изменяются на противоположные (инвертируются) до первой встречной единицы (включительно). После этого производится вычитание из измененных разрядов уменьшаемого.

Рассмотрим пример вычитания многоразрядных чисел (из большего числа вычитается меньшее).

Пример 2.12. Вычитание в двоичной системе счисления:

  • 0 111 Изменение уменьшаемого в результате займа
  • 1 1 0 0 0 1 = 49 - уменьшаемое
  • 11011 - 21 - вычитаемое
  • 10 1 1 0 = 22 - разность

Умножение. Операция умножения выполняется с использованием таблицы умножения по обычной схеме (применяемой в десятичной системе счисления) с последовательным умножением множимого на очередную цифру множителя.

Пример 2.13. Умножение в двоичной системе счисления:

  • *1011
  • 1011
  • 110111

Деление. При делении столбиком приходится в качестве промежуточных результатов выполнять действия умножения и вычитания.

Запись десятичных чисел (двоично-десятичный код)

Иногда бывает удобно хранить числа в памяти процессора в десятичном виде (например, для вывода на экран дисплея). Для записи таких чисел используются двоично-десятичные коды. Для записи одного десятичного разряда используется четыре двоичных бита (тетрады). При помощи четырех бит можно закодировать 16 цифр (2 4 = 16). Лишние комбинации в двоично-десятичном коде являются запрещенными. Соответствие двоично-десятичного кода и десятичных цифр приведено в табл. 2.4.

Таблица 2.4

Соответствие двоично-десятичного кода и десятичных цифр

Двоично-десятичный код

Десятичный код

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

Пример 2.14. Записать двоично-десятичный код числа 1258 10 -

1258 ш = 0001 0010 0101 1000 2 .

В первой тетраде записана цифра 1, во второй - 2, в третьей - 5, а в последней тетраде записана цифра 8. В данном примере для записи числа 1258 потребовалось четыре тетрады. Количество ячеек памяти микропроцессора зависит от его разрядности. При 16-раз-рядном процессоре все число уместится в одну ячейку памяти.

Пример 2.15. Записать двоично-десятичный код числа 589 10:

589 10 = 0000 0101 1000 1001 2 .

В данном примере для записи числа достаточно трех тетрад, но ячейка памяти 16-разрядная. Поэтому старшая тетрада заполняется нулями. Они не изменяют значение цифры.

При записи десятичных чисел часто требуется записывать знак числа и десятичную запятую (в англоязычных странах - точку). Двоично-десятичный код часто применяется для набора телефонного номера или набора кодов телефонных служб. В этом случае кроме десятичных цифр часто применяются символы «*» или «#». Для записи этих символов в двоично-десятичном коде применяются запрещенные комбинации (табл. 2.5).

Таблица 2.5

Соответствие двоично-десятичного кода и дополнительных символов

Достаточно часто в памяти процессора для хранения одной десятичной цифры выделяется одна ячейка памяти (8-, 16- или 32-раз-рядная). Это делается для повышения скорости работы программы. Для того чтобы отличить такой способ записи двоично-десятичного числа от стандартного, способ записи десятичного числа, как это показано в примере, называется упакованной формой двоично-десятичного числа.

Пример 2.16. Записать неупакованный двоично-десятичный код числа 1258 10 для 8-разрядного процессора:

  • 1258 00000001
  • 00000010 00000101 00001000

В первой строке записана цифра 1, во второй - 2, в третьей - 5, а в последней строке записана цифра 8. В данном примере для записи числа 1258 потребовалось четыре строки (ячейки памяти).

Суммирование двоично-десятичных чисел. Суммирование двоично-десятичных чисел можно производить по правилам обычной двоичной арифметики, а затем производить двоично-десятичную коррекцию. Двоично-десятичная коррекция заключается в проверке каждой тетрады на допустимые коды. Если в какой-либо тетраде обнаруживается запрещенная комбинация, то это говорит о переполнении. В этом случае необходимо произвести двоичнодесятичную коррекцию. Двоично-десятичная коррекция заключается в дополнительном суммировании числа шесть (число запрещенных комбинаций) с тетрадой, в которой произошло переполнение или произошел перенос в старшую тетраду. Приведем пример:

  • 0 0 0 1 10 0 0 0 0 0 1 0 0 1 1
  • 0 0 10 10 11

Во второй тетраде обнаружилась запрещенная комбинация. Проводим двоично-десятичную коррекцию: суммируем число шесть со второй тетрадой:

  • 0 0 10 10 11
  • 0 0 0 0 0 1 1 0
  • 0 0 1 1 0 0 0 1

Формы представления в ЭВМ числовых данных

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

Примеры естественной формы записи чисел:

  • 15300 - целое число; 0,000564 - правильная дробь;
  • 6,4540 - неправильная дробь.

Пример нормальной формы записи одного и того же числа 25 340 в зависимости от ограничений, накладываемых на нормальную форму:

25 340 = 2,534- 10 4 = 0,2534 - 10 5 = 2534000 - 10“ 2 ит.д.

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

Представление числа в нормальной форме называют представлением с плавающей запятой (положение запятой меняется).

С числами, представленными в форме с плавающей запятой, работают в основном универсальные ЭВМ, а специализированные ЭВМ - с фиксированной запятой, но целый ряд машин работает с числами в этих двух форматах.

Характер программирования зависит от способа представления чисел.

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

Фиксированная запятая (точка)

В современных ЭВМ способ представления чисел с фиксированной запятой в вычислительной технике используется преимущественно для представления целых чисел.

Так как числа бывают положительными и отрицательными, то в разрядной сетке при их машинном представлении один или два разряда (для модифицированных кодов) отводятся под знак числа, а остальные разряды образуют поле числа. В знаковые разряды, которые могут располагаться как в начале, так и в конце числа, записывается информация о знаке числа. Знак «+» кодируется нулем, знак «-» кодируется единицей. Для модифицированных кодов знак «+» кодируется двумя нулями, знак «-» кодируется двумя единицами. Модифицированные коды введены для обнаружения неправильного результата вычислений, т.е. когда результат превышает максимальный размер разрядной сетки и необходим перенос из значащего разряда.

Например, в результате выполнения операций в знаковом разряде число 01 свидетельствует о положительном переполнении разрядной сетки, а число 10 - об отрицательном переполнении разрядной сетки.

Поле числа имеет постоянное число разрядов - п. Диапазон представления целых чисел ограничивается значениями -(2 п - 1) и +(2" - 1).

Например, в двоичном коде, используя 6-разрядную сетку, число 7 в форме с фиксированной запятой можно представить в виде

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

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

где знаковый разряд выделяется квадратными скобками.

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

|/1|тах = (2(п - 1) - 1),

где п - полная длина разрядной сетки.

В случае 16-разрядной сетки

|Л|тах = (2(16- 1)- 1) = 3276710,

т.е. диапазон представления целых чисел в этом случае будет от +3 276710 до -3276710.

Для случая, когда запятая фиксируется правее младшего разряда мантиссы, т.е. для целых чисел, числа, у которых модуль больше чем (2(п - 1) - 1) и меньше единицы, не представляются в форме с фиксированной запятой. Числа, по абсолютной величине меньшие единицы младшего разряда разрядной сетки, называются в этом случае машинным нулем. Отрицательный ноль запрещен.

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

Представление отрицательных чисел в формате с фиксированной запятой

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

Известно, что одним из способов выполнения операции вычитания является замена знака вычитаемого на противоположный и прибавление его к уменьшаемому:

А-В = А + (-В).

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

Для машинного представления отрицательных чисел используют коды: прямой, дополнительный, обратный. Упрощенное определение этих кодов может быть дано следующим образом. Если число А в обычном двоичном коде (прямом двоичном коде) изобразить как

тогда число в этом же коде представляется как

[-Д] П р - 1-?7 /г й /7 _| Й Л _2....Й Г | а 0 ,

а в обратном (инверсном) коде это число будет иметь вид

[-Д] 0 б - 1*^77 *2/7-1 *2 /г _а 0,

а, - 1, если а 1 - 0, я,- = 0, если я, = 1,

я, - цифра /"-го разряда двоичного числа. Следовательно, при переходе от прямого кода к обратному все цифры разрядов матиссы числа инвертируются.

Тогда число в дополнительном коде изображается в виде

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

Дополнительный код некоторого числа получается его заменой на новое число, дополняющее его до числа, равного весу разряда, следующего за самым старшим разрядом разрядной сетки, используемой для представления мантиссы числа в формате с фиксированной запятой. Поэтому такой код числа называется дополнительным.

Представим, что мы имеем только два разряда для представления чисел в десятичной системе счисления. Тогда максимальное число, которое можно изобразить, будет 99, а вес третьего, несуществующего старшего разряда будет 10 2 , т.е. 100. В таком случае для числа 20 дополнительным будет число 80, которое дополняет 20 до 100 (100 - 20 = 80). Следовательно, по определению вычитание

можно заменить на сложение:

Здесь старшая единица выходит за пределы выделенной разрядной сетки, в которой остается только число 30, т.е. результат вычитания из 50 числа 20.

А теперь рассмотрим похожий пример для чисел, представленных 4-разрядным двоичным кодом. Найдем дополнительное число для 0010 2 = 2 10 . Надо из 0000 вычесть 0010, получим 1110, которое и является дополнительным кодом 2. Разряд, изображенный в квадратных скобках, на самом деле не существует. Но так как у нас 4-раз-рядная сетка, то выполнить такое вычитание в принципе невозможно, а тем более мы стараемся избавиться от вычитания. Поэтому дополнительный код числа получают способом, описанным ранее, т.е. сначала получают обратный код числа, а затем прибавляют к нему единицу. Проделав все это с нашим числом (2), нетрудно убедиться, что получится аналогичный ответ.

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

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

Рассмотрим простые примеры.

Семерка в прямом коде представляется так:

Пр = 0.00011 1 2 .

Число -7 в прямом коде

[-7] пр = 1.000111 2 ,

а в обратном коде будет иметь вид

[-7] об = 1.111000 2 ,

т.е. единицы заменяются нулями, а нули - единицами. То же число в дополнительном коде будет

[-7] доп = 1.111001 2 .

Рассмотрим еще раз, как процедура вычитания при помощи представления вычитаемого в дополнительном коде сводится к процедуре сложения. Вычтем из 10 число 7: 10-7 = 3. Если оба операнда представлены в прямом коде, то процедура вычитания выполняется так:

0.001010 -1.000111 0.000011 =310.

А если вычитаемое, т.е. -7, представить в дополнительном коде, то процедура вычитания сводится к процедуре сложения:

0.001010 + 1,111001 1 0.000011 =310.

В настоящее время в компьютерах для представления отрицательных чисел в формате с фиксированной запятой обычно используется дополнительный код.

Вещественные числа

Числовые величины, которые могут принимать любые значения (целые и дробные), называются вещественными числами.

Вещественные числа в памяти компьютера представляются в форме с плавающей точкой. Форма с плавающей точкой использует представление вещественного числа Я в виде произведения мантиссы т на основание системы счисления р в некоторой целой степени п , которую называют порядком :

Я = ш р п.

Например, число 25,324 можно записать в таком виде:

Здесь т = 0.25324 - мантисса; п = 2 - порядок. Порядок указывает, на какое количество позиций и в каком направлении должна «переплыть», т.е. сместиться, десятичная точка в мантиссе. Отсюда название «плавающая точка».

Однако справедливы и следующие равенства:

25,324 = 2,5324- 10 1 = 0,0025324 10 4 = 2532,4 - 10" 2 ит.п.

Получается, что представление числа в форме с плавающей точкой неоднозначно? Чтобы не было неоднозначности, в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в нормализованном представлении должна удовлетворять условию

Иначе говоря, мантисса меньше единицы и первая значащая цифра - не ноль. Значит, для рассмотренного числа нормализованным представлением будет 0.25324 10 2 . В разных типах ЭВМ применяются различные варианты представления чисел в форме с плавающей точкой. Для примера рассмотрим один из возможных. Пусть в памяти компьютера вещественное число представляется в форме с плавающей точкой в двоичной системе счисления = 2) и занимает ячейку размером 4 байта. В ячейке должна содержаться следующая информация о числе: знак числа, порядок и значащие цифры мантиссы. Вот как эта информация располагается в ячейке:

В старшем бите 1-го байта хранится знак числа. В этом разряде нуль обозначает плюс, единица - минус. Оставшиеся 7 бит первого байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы.

В семи двоичных разрядах помещаются двоичные числа в диапазоне от 0000000 до 1111111. В десятичной системе это соответствует диапазону от 0 до 127 - всего 128 значений. Знак порядка в ячейке не хранится. Но порядок, очевидно, может быть как положительным так и отрицательным. Разумно эти 128 значений разделить поровну между положительными и отрицательными значениями порядка.

В таком случае между машинным порядком и истинным (назовем его математическим) устанавливается следующее соответствие:

Машинный порядок

Математический порядок

Если обозначить машинный порядок Мр , а математический - р, то связь между ними выразится формулой

Мр = р + 64.

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

Полученная формула записана в десятичной системе. Поскольку 64 |0 = 40 16 (проверьте!), то в шестнадцатеричной системе формула примет вид

Мр 1в =Рб + 40 16 .

И наконец, в двоичной системе

Мр 2 =р 2 + юо 0000 2 .

Теперь мы можем записать внутреннее представление числа 25,324 в форме с плавающей точкой.

  • 1. Переведем его в двоичную систему счисления с 24 значащими цифрами:
  • 25,324 10 = 11001,0101001011110001101 2 .
  • 2. Запишем в форме нормализованного двоичного числа с плавающей точкой:
  • 0,110010101001011110001101 Ю 101 .

Здесь мантисса, основание системы счисления (2 10 = 10 2) и порядок (5 10 = 101 2) записаны в двоичной системе.

3. Вычислим машинный порядок:

Мр 2 = 101 + 100 0000= 100 0101.

4. Запишем представление числа в ячейке памяти:

Для того чтобы получить внутреннее представление отрицательного числа -25,324, достаточно в полученном выше коде заменить в разряде знака числа 0 на 1.

А в шестнадцатеричной форме:

Никакого инвертирования, как для отрицательных чисел с фиксированной точкой, здесь не происходит.

Рассмотрим, наконец, вопрос о диапазоне чисел, представимых в форме с плавающей точкой. Очевидно, положительные и отрицательные числа расположены симметрично относительно нуля. Следовательно, максимальное и минимальное числа равны между собой по модулю: Я тах = |/? т; п |. Наименьшее по абсолютной величине число равно нулю. Чему же равно Я тах? Это число с самой большой мантиссой и самым большим порядком:

0,111111111111111111111111 ю5 111Ш.

Если перевести в десятичную систему, то получится

Л тах =(1 -2- 24)-2 64 = 10 19 .

Очевидно, что диапазон вещественных чисел значительно шире диапазона целых чисел. Если в результате вычислений получается число, по модулю большее чем Я тах, то происходит прерывание работы процессора. Такая ситуация называется переполнением при вычислениях с плавающей точкой. Наименьшее по модулю ненулевое значение равно

(1/2) 2 -64 = 2 -66 .

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

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

N = 2"-(U-L+ 1)+ 1.

Здесь t - количество двоичных разрядов мантиссы; U - максимальное значение математического порядка; L - минимальное значение порядка. Для рассмотренного нами варианта (/ = 24, U = 63, L = -64) получается

N=2 146683548.

Все же остальные числа, не попадающие в это множество, но находящиеся в диапазоне допустимых значений, представляются в памяти приближенно (мантисса обрезается на 24-м разряде). А поскольку числа имеют погрешности, то и результаты вычислений с этими числами также будут содержать погрешности. Из сказанного следует вывод: вычисления с вещественными числами в компьютере выполняются приближенно.

Единицы измерения информации

Бит (англ, binary digit; также игра слов: англ, bit - немного) (один двоичный разряд в двоичной системе счисления) - одна из самых известных единиц измерения количества информации.

Ниббл (англ, nibble, nybble), или полубайт, - единица измерения информации, равная четырем двоичным разрядам (битам); удобна тем, что представима одной шестнадцатеричной цифрой, т.е. является одним шестнадцатеричным разрядом.

Байт (англ, byte, представляет собой сокращение словосочетания BinarYTErm - «двоичный терм») - единица хранения и обработки цифровой информации. В современных вычислительных системах байт считается равным восьми битам, в этом случае он может принимать одно из 2 8 = 256 различных значений (состояний, кодов). Однако в истории компьютеров известны решения с другим размером байта, например 6 битов, 36 битов в PDP- 10. Поэтому иногда в компьютерных стандартах и официальных документах для однозначного обозначения 8-битного слова используется термин «октет» (лат. octet). В большинстве вычислительных архитектур байт - это минимальный независимо адресуемый набор данных.

Машинное слово - машиннозависимая и платформозависимая величина, измеряемая в битах или байтах (тритах или трайтах), равная разрядности регистров процессора и/или разрядности шины данных (обычно некоторая степень двойки). На ранних компьютерах размер слова совпадал также с минимальным размером адресуемой информации (разрядностью данных, расположенных по одному адресу); на современных компьютерах минимальным адресуемым блоком информации обычно является байт, а слово состоит из нескольких байтов. Машинное слово определяет следующие характеристики аппаратной платформы:

  • разрядность данных, обрабатываемых процессором;
  • разрядность адресуемых данных (разрядность шины данных);
  • максимальное значение беззнакового целого типа, напрямую поддерживаемого процессором: если результат арифметической операции превосходит это значение, то происходит переполнение;
  • максимальный объем оперативной памяти, напрямую адресуемой процессором.

Десятичные и двоичные кратные приставки

Двоичные приставки - приставки перед единицами измерения, обозначающие их умножение на 2 10 = 1024. Благодаря близости чисел 1024 и 1000 двоичные приставки построены по аналогии со стандартными десятичными приставками СИ. Каждая двоичная приставка получается заменой последнего слога соответствующей десятичной приставки на би (от лат. binarius - двоичный). Двоичные приставки используются для образования единиц измерения информации, кратных битам и байтам. Приставки были введены Международной электротехнической комиссией (МЭК) в марте 1999 г. Выглядят они следующим образом (табл. 2.6).

Представление текстовой информации в ЭВМ.

Кодировки ASCII и Unicode

Для представления текстовой информации в ЭВМ графическому отображению каждого символа сопоставляется некий код. Набор символов/кодировка (англ, character set) - таблица, задающая кодировку конечного множества символов алфавита (обычно элементов текста: букв, цифр, знаков препинания). Такая таблица сопоставляет каждому символу последовательность длиной в один или несколько символов другого алфавита, например нулей и единиц (битов).

ASCII (англ. American Standard Code for Information Interchange) - американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов (коды с 0x00 по 0x1 F).

ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препи-

Двоичные приставки для образования единиц измерения информации

Двоичная

приставка

Аналогичная

десятичная

приставка

Сокращения по МЭК для битов, байтов

Значение, на которое умножается исходная величина

киби/кіЬі (2 10)

Кибит, КиБ/КлВ

меби/теЫ (2 20)

Мибит, МиБ/МШ

2 20 = 1 048 576

гиби/§іЬі (2 30)

Гибит, ГиБ/вШ

2 30 = 1 073741 824

тебиДеЬі (2 40)

тера (10 12)

Тибит, ТиБ/ТШ

2 40 = 1 099511 627776

пеби/реЬі (2 50)

пета (10 15)

Пибит, ПиБ/Р1В

2 50 = 1 125 899906842624

эксби/ехЫ (2 60)

экса (10 18)

Эибит, ЭиБ/ЕШ

2 60 = 1 152921504606846976

зеби/геЬі (2 70)

зетта (10 21)

Зибит, ЗиБ/71В

2 70 = 1 180591620717411 303424

йоби/уоЬі (2 80)

йотта (10 24)

Йибит, ЙиБ/У1В

2 80 = 1 208925819614629 174706 176

нания и управляющих символов. Изначально разработанная (в 1963 г.) как 7-битная, после широкого распространением 8-бит-ного байта ASCII стала восприниматься как половина 8-битной. В компьютерах обычно используют расширения ASCII с задействованным 8-м битом и второй половиной другой кодовой таблицы (например, КОИ 8).

Юникод или Уникод (англ. Unicode) - стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков.

Стандарт предложен в 1991 г. некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы; при этом становится ненужным переключение кодовых страниц.

Стандарт состоит из двух основных разделов: универсального набора символов (англ. UCS, universal character set) и семейства кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задает однозначное соответствие символов кодам, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление кодов UCS.

Для определения формата представления Юникода в начало текстового файла записывается сигнатура - код FEFF (символ с таким кодом в Unicode отсутствует), также именуемый меткой порядка байтов (англ, byte order mark, BOM). Также этот способ иногда применяется для обозначения формата UTF 8, хотя к этому формату и неприменимо понятие порядка байтов.

Основные Unicode-кодировки:

  • UTF-8 (EF ВВ BF);
  • UTF-16BE (FE FF);
  • UTF-16LE (FF FE);
  • UTF-32BE (0000 FE FF);
  • UTF-32LE (FF FE0000).
  • + ^т-2Ят 2 + + + Яо
  • + ^т-2Ят 2 + + + Яо
  • + ^т-2Ят 2 + + + Яо
  • + ^т-2Ят 2 + + + Яо
  • + ^т-2Ят 2 + + + Яо
  • + ^т-2Ят 2 + + + Яо
  • + ^т-2Ят 2 + + + Яо
  • - ^]доп - 1-^1об

В настоящее время в обыденной жизни для кодирования числовой информации используется десятичная система счисления с основанием 10, в которой используется 10 элементов обозначения: числа 0, 1, 2, … 8, 9. В первом (младшем) разряде указывается число единиц, во втором - десятков, в третьем - сотен и т.д.; иными словами, в каждом следующем разряде вес разрядного коэффициента увеличивается в 10 раз.

В цифровых устройствах обработки информации используется двоичная система счисления с основанием 2, в которой используется два элемента обозначения: 0 и 1. Веса разрядов слева направо от младших разрядов к старшим увеличиваются в 2 раза, то есть имеют такую последовательность: 8421. В общем виде эта последовательность имеет вид:

…2 5 2 4 2 3 2 2 2 1 2 0 ,2 -1 2 -2 2 -3 …

и используется для перевода двоичного числа в десятичное. Например, двоичное число 101011 эквивалентно десятичному числу 43:

2 5 ·1+2 4 ·0+2 3 ·1+2 2 ·0+2 1 ·1+2 0 ·1=43

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

Бит или двоичный разряд определяет значение одного какого-либо знака в двоичном числе. Например, двоичное число 101 имеет три бита или три разряда. Крайний справа разряд, с наименьшим весом, называется младшим, а крайний слева, с наибольшим весом, - старшим .

Байт определяет 8-разрядную единицу информацию, 1 байт=23 бит, например, 10110011 или 01010111 и т.д., 1 кбайт = 2 10 байт, 1 Мбайт = 2 10 кбайт = 2 20 байт.

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

Основанием шестнадцатеричной системы счисления является число 16=2 4 , в которой используется 16 элементов обозначения: числа от 0 до 9 и буквы A, B, C, D, E, F. Для перевода двоичного числа в шестнадцатеричное достаточно двоичное число разделить на четырёхбитовые группы: целую часть справа налево, дробную - слева направо от запятой. Крайние группы могут быть неполными.

Каждая двоичная группа представляется соответствующим шестнадцатеричным символом (таблица 1). Например, двоичное число 0101110000111001 в шестнадцатеричной системе выражается числом 5C39.

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

Двоично-десятичный код образуется заменой каждой десятичной цифры числа четырёхразрядным двоичным представлением этой цифры в двоичном коде (См. таблицу 1). Например, число 15 представляется как 00010101 BCD (Binary Coded Decimal). При этом в каждом байте располагаются две десятичные цифры. Заметим, что двоично-десятичный код при таком преобразовании не является двоичным числом, эквивалентным десятичному числу.

1.2 Логические основы ЭВМ

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


Таблица 1 – Коды чисел от 0 до 15

Десятичное число Коды
Двоичный 16-ричный Двоично-десятичный
0 0000 0 000
1 0001 1 0001
2 0010 2 0010
3 0011 3 0011
4 0100 4 0100
5 0101 5 0101
6 0110 6 0110
7 0111 7 0111
8 1000 8 1000
9 1001 9 1001
10 1010 A 00010000
11 1011 B 00010001
12 1100 C 00010010
13 1101 D 00010011
14 1110 E 00010100
15 1111 F 00010101

1.2.1 Основные положения алгебры логики

Различные логические переменные могут быть связаны функциональными зависимостями. Функциональные зависимости между логическими переменными могут быть описаны логическими формулами или таблицами истинности.

В общем виде логическая формула функции двух переменных записывается в виде: y =f (X 1 , X 2), где X 1 , X 2 - входные переменные.

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


Таблица 2 – Полный набор функций одной переменной

X Y1 Y2 Y3 Y4
0 1 0 1 0
1 0 1 1 0

Y1 - Инверсия, Y2 - Тождественная функция, Y3 - Абсолютно истинная функция и Y4 – Абсолютно ложная функция.

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

При двух переменных полный набор состоит из 16 функций, однако в цифровых устройствах используются далеко не все.

Основными логическими функциями двух переменных, используемыми в устройствах цифровой обработки информации являются: дизъюнкция (логическое сложение), конъюнкция (логическое умножение), сумма по модулю 2 (неравнозначность), стрелка Пирса и штрих Шеффера. Условные обозначения логических операций, реализующих указанные выше логические функции одной и двух переменных, приведены в таблице 3.


Таблица 3 Названия и обозначения логических операций

Операцию инверсии можно выполнить чисто арифметически: и алгебраически: Из этих выражений следует, что инверсия x , т.е. дополняет x до 1. Отсюда и возникло ещё одно название этой операции - дополнение . Отсюда же можно сделать вывод, что двойная инверсия приводит к исходному аргументу, т.е. и это называется законом двойного отрицания.


Таблица 4 – Таблицы истинности основных функций двух переменных

Дизъюнкция Конъюнкция Исключающее ИЛИ Стрелка Пирса Штрих Шеффера
X1 X2 Y X1 X2 Y X1 X2 Y X1 X2 Y X1 X2 Y
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
0 1 1 0 1 0 0 1 1 0 1 0 0 1 1
1 0 1 1 0 0 1 0 1 1 0 0 1 0 1
1 1 1 1 1 1 1 1 0 1 1 0 1 1 0

Дизъюнкция. В отличие от обычного арифметического или алгебраического суммирования здесь наличие двух единиц даёт в результате единицу. Поэтому при обозначении логического суммирования предпочтение следует отдать знаку (∨) вместо знака (+) .

Первые две строчки таблицы истинности операции дизъюнкции (x 1 =0) определяют закон сложения с нулём : x ∨ 0 = x , а вторые две строчки (x 1 = 1) - закон сложения с единицей : x ∨ 1 = 1.

Конъюнкция. Таблица 4 убедительно показывает тождественность операций обычного и логическог умножений. Поэтому в качестве знака логического умножения возможно использование привычного знака обычного умножения в виде точки .

Первые две строчки таблицы истинности операции конъюнкции определяют закон умножения на ноль : x ·0 = 0, а вторые две - закон умножения на единицу: x ·1 = x.

Исключающее ИЛИ. Под функцией «Исключающее ИЛИ» понимают следующее: единица на выходе появляется тогда, когда только на одном входе присутствует единица. Если единиц на входах две или больше, или если на всех входах нули, то на выходе будет нуль.

Надпись на обозначении элемента ИСКЛЮЧАЮЩЕЕ ИЛИ «=1» (Рисунок 1, г) как раз и обозначает, что выделяется ситуация, когда на входах одна и только одна единица.

Эта операция аналогична операции арифметического суммирования, но, как и другие логические операции, без образования переноса. Поэтому она имеет другое название сумма по модулю 2 и обозначение ⊕, сходное с обозначением арифметического суммирования.

Стрелка Пирса и штрих Шеффера. Эти операции являются инверсиями операций дизъюнкции и конъюнкции и специального обозначения не имеют.

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

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

Сложной является логическая функция, значение истинности которой зависит от истинности других функций. Эти функции являются аргументами данной сложной функции.

Например, в сложной логической функции аргументами являются X 1 ∨X 2 и .

1.2.2 Логические элементы

Для реализации логических функций в устройствах цифровой обработки информации используются логические элементы. Условные графические обозначения (УГО) логических элементов, реализующих рассмотренные выше функции, приведены на рисунке 1.

Рисунок 1 – УГО логических элементов: а) Инвертор, б) ИЛИ, в) И, г) Исключающее ИЛИ, д) ИЛИ-НЕ, е) И-НЕ.


Сложные логические функции реализуются на основе простых логических элементов, путём их соответствующего соединения для реализации конкретной аналитической функции. Функциональная схема логического устройства, реализующего сложную функцию, , приведённую в предыдущем параграфе, приведена на рисунке 2.

Рисунок 2 – Пример реализации сложной логической функции


Как видно из рисунка 2, логическое уравнение показывает, из каких ЛЭ и какими соединениями можно создать заданное логическое устройство.

Поскольку логическое уравнение и функциональная схема имеют однозначное соответствие, то целесообразно упростить логическую функцию, используя законы алгебры логики и, следовательно, сократить количество или изменить номенклатуру ЛЭ при её реализации.

1.2.3 Законы и тождества алгебры логики

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

1 Переместительный: X ∨ Y = Y ∨ X; X · Y = Y · X.

2 Cочетательный: X ∨ Y ∨ Z = (X ∨ Y) ∨ Z = X ∨(Y ∨ Z); X · Y · Z = (X · Y) · Z = X· (Y· Z).

3 Идемпотентности: X ∨ X = X; X · X = X.

4 Распределительный: (X ∨ Y)· Z = X· Z ∨ Y· Z.

5 Двойное отрицание: .

6 Закон двойственности (Правило де Моргана):

Для преобразования структурных формул применяется ряд тождеств:

X ∨ X · Y = X; X(X ∨ Y) = X - Правила поглощения.

X· Y ∨ X· = X, (X ∨ Y)·(X ∨ ) = X – Правила склеивания.

Правила старшинства логических операций.

1 Отрицание - логическое действие первой ступени.

2 Конъюнкция - логическое действие второй ступени.

3 Дизъюнкция - логическое действие третьей ступени.

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

  • Административно-правовые основы деятельности центров ГСЭН
  • Акмеологические основы самосовершенствования личности
  • Анализ ФСП основывается главным образом на относительных показателях, так как абсолютные показатели баланса в условиях инфляции сложно привести в сопоставимый вид.
  • АНОТАЦИЯ к электронному учебнику «Основы системного анализа»
  • Лекция 1. Введение Арифметические и логические основы ЭВМ. Арифметические основы ЭВМ. Логические основы ЭВМ. Основные положения алгебры логики. Логические элементы. Законы и тождества алгебры логики.

    Электронные вычислительные машины выполняют арифметические и логические операции, при этом используется два класса переменных: числа и логические переменные. Числа несутинформацию о количественных характеристиках системы;наднимипроизводятся арифметическиедействия. Логические переменные определяют состояние системы или принадлежность её к определённому классу состояний (коммутация каналов, управление работой ЭВМ по программе ит.п.).Логические переменные могут принимать только два значения: истина и ложь. В устройствах цифровой обработки информации этим двум значениям переменных ставится в соответствие два уровня напряжения: высокий- (логическая«1» )инизкий-(логический0»). Однако в эти значения не вкладывается смысл количества. Элементы, осуществляющие простейшие операции над такими двоичными сигналами, называют логическими. На основе логических элементов разрабатываются устройства, выполняющие и арифметические, и логические операции.

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

    Арифметические основы ЭВМ

    В настоящее время в обыденной жизни для кодирования числовой информации используется десятичная система счисления с основанием 10, в которой используется 10 элементов обозначения: числа 0, 1, 2, … 8, 9. В первом (младшем) разряде указывается число единиц, во втором - десятков, в третьем - сотен и т.д.; иными словами, в каждом следующем разряде вес разрядного коэффициента увеличивается в 10 раз.

    В цифровых устройствах обработки информации используется двоичная система счисления с основанием 2, в которой используется два элемента обозначения: 0 и 1. Веса разрядов слева направо от младших разрядов к старшим увеличиваются в 2 раза, то есть имеют такую последовательность: 8421. В общем виде эта последовательность имеет вид:

    …2 5 2 4 2 3 2 2 2 1 2 0 ,2 -1 2 -2 2 -3 …

    и используется для перевода двоичного числа в десятичное. Например, двоичное число 101011 эквивалентно десятичному числу 43:

    2 5 ·1+2 4 ·0+2 3 ·1+2 2 ·0+2 1 ·1+2 0 ·1=43

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

    Бит или двоичный разряд определяет значение одного какого-либо знака в двоичном числе. Например, двоичное число 101 имеет три бита или три разряда. Крайний справа разряд, с наименьшим весом, называется младшим, а крайний слева, с наибольшим весом, - старшим .

    Байт определяет 8-разрядную единицу информацию, 1 байт=23 бит, например, 10110011 или 01010111 и т.д., 1 кбайт = 2 10 байт, 1 Мбайт = 2 10 кбайт = 2 20 байт.

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

    Основанием шестнадцатеричной системы счисления является число 16=2 4 , в которой используется 16 элементов обозначения: числа от 0 до 9 и буквы A, B, C, D, E, F. Для перевода двоичного числа в шестнадцатеричное достаточно двоичное число разделить на четырёхбитовые группы: целую часть справа налево, дробную - слева направо от запятой. Крайние группы могут быть неполными.

    Каждая двоичная группа представляется соответствующим шестнадцатеричным символом (таблица 1). Например, двоичное число 0101110000111001 в шестнадцатеричной системе выражается числом 5C39.

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

    Двоично-десятичный код образуется заменой каждой десятичной цифры числа четырёхразрядным двоичным представлением этой цифры в двоичном коде (См. таблицу 1). Например, число 15 представляется как 00010101 BCD (BinaryCodedDecimal). При этом в каждом байте располагаются две десятичные цифры. Заметим, что двоично-десятичный код при таком преобразовании не является двоичным числом, эквивалентным десятичному числу.

    арифметика--логическое устройство

    арифметика--логическое устройство (АЛУ) - центральная часть процессора, выполняющая арифметические и логические операции.

    АЛУ реализует важную часть процесса обработки данных. Она заключается в выполнении набора простых операций. Операции АЛУ подразделяются на три основные категории: арифметические, логические и операции над битами. Арифметической операцией называют процедуру обработки данных, аргументы и результат которой являются числами (сложение, вычитание, умножение, деление,...). Логической операцией именуют процедуру, осуществляющую построение сложного высказывания (операции И, ИЛИ, НЕ,...). Операции над битами обычно подразумевают сдвиги.

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

    Арифметико-логическое устройство функционально можно разделить на две части: а) микропрограммное устройство (устройство управления), задающее последовательность микрокоманд (команд); б) операционное устройство (АЛУ), в котором реализуется заданная последовательность микрокоманд (команд).

    Закон переработки информации задает микропрограмма, которая записывается в виде последовательности микрокоманд A1,A2, ..., Аn-1,An. При этом различают два вида микрокоманд: внешние, то есть такие микрокоманды, которые поступают в АЛУ от внешних источников и вызывают в нем те или иные преобразования информации (на рис. 1 микрокоманды A1,A2,..., Аn), и внутренние, которые генерируются в АЛУ и воздействуют на микропрограммное устройство, изменяя естественный порядок следования микрокоманд. Например, АЛУ может генерировать признаки в зависимости от результата вычислений: признак переполнения, признак отрицательного числа, признак равенства 0 всех разрядов числа др. На рис. 1 эти микрокоманды обозначены р1, p2,..., рm.

    Результаты вычислений из АЛУ передаются по кодовым шинам записи у1, у2, ...,уs, в ОЗУ. Функции регистров, входящих в АЛУ: Рг1 - сумматор (или сумматоры) - основной регистр АЛУ, в котором образуется результат вычислений; Рг2, РгЗ - регистры слагаемых, сомножителей, делимого или делителя (в зависимости от выполняемой операции); Рг4 - адресный регистр (или адресные регистры), предназначен для запоминания (иногда и формирования) адреса операндов и результата; Ргб - k индексных регистров, содержимое которых используется для формирования адресов; Рг7 - i вспомогательных регистров, которые по желанию программиста могут быть аккумуляторами, индексными регистрами или использоваться для запоминания промежуточных результатов.

    Часть операционных регистров является программно-доступной, то есть они могут быть адресованы в команде для выполнения операций с их содержимым. К ним относятся: сумматор, индексные регистры, некоторые вспомогательные регистры.

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

    АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования "операция/ режим адресации" базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.

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

      Числа несут информацию о количественных характеристиках системы; над ними производятся арифметические действия.

    Логические переменные определяют состояние системы или принадлежность её к определённому классу состояний (коммутация каналов, управление работой ЭВМ по программе и т. п.).

    Логические переменные могут принимать только два значения: истина и ложь. В устройствах цифровой обработки информации этим двум значениям переменных ставится в соответствие два уровня напряжения: высокий -- (логическая «1» ) и низкий -- (логический 0»). Однако в эти значения не вкладывается смысл количества.

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

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

    1 Арифметические и логические основы эвм

    1.1 Арифметические основы эвм

    В настоящее время в обыденной жизни для кодирования числовой информации используется десятичная система счисления с основанием 10, в которой используется 10 элементов обозначения: числа 0,1,2,…8,9. В первом (младшем) разряде указывается число единиц, во втором – десятков, в третьем – сотен и т. д.; иными словами, в каждом следующем разряде вес разрядного коэффициента увеличивается в 10 раз.

    В цифровых устройствах обработки информации используется двоичная система счисления с основанием 2, в которой используется два элемента обозначения: 0 и 1. Веса разрядов слева направо от младших разрядов к старшим увеличиваются в 2 раза, то есть имеют такую последовательность: 8421. В общем виде эта последовательность имеет вид:

    и используется для перевода двоичного числа в десятичное. Например, двоичное число 101011 эквивалентно десятичному числу 43:

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

    Бит или двоичный разряд определяет значение одного какого-либо знака в двоичном числе. Например, двоичное число 101 имеет три бита или три разряда. Крайний справа разряд, с наименьшим весом, называется младшим, а крайний слева, с наибольшим весом, – старшим .

    Байт определяет 8-разрядную единицу информацию, 1байт=2 3 бит, например, 10110011 или 01010111 и т. д.,
    ,

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

    Основанием шестнадцатеричной системы счисления является число 16=, в которой используется 16 элементов обозначения: числа от 0 до 9 и буквы А,B,C,D,E,F. Для перевода двоичного числа в шестнадцатеричное достаточно двоичное число разделить на четырёх – битовые группы: целую часть справа налево, дробную – слева направо от запятой. Крайние группы могут быть неполными.

    Каждая двоичная группа представляется соответствующим шестнадцатеричным символом (таблица 1). Например, двоичное число 0101110000111001 в шестнадцатеричной системе выражается числом 5С39.

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

    Двоично – десятичный код образуется заменой каждой десятичной цифры числа четырёхразрядным двоичным представлением этой цифры в двоичном коде (См. таблицу 1). Например, число 15 представляется как 00010101 BCD (Binary Coded Decimal). При этом в каждом байте располагаются две десятичные цифры. Заметим, что двоично–десятичный код при таком преобразовании не является двоичным числом, эквивалентным десятичному числу.