Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архит_ч1_А4.pdf
Скачиваний:
42
Добавлен:
20.03.2015
Размер:
1.2 Mб
Скачать

ГЛАВА 3. АРИФМЕТИЧЕСКИЕ ОСНОВЫ ЭВМ

3.1 Системы счисления и понятие кода

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

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

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

Различают позиционные и непозиционные системы счисления.

Непозиционная система счисления - это система, для которой значение символа, т.е. цифры, не зависит от его положения в числе. К таким системам относится, в частности, римская система (правда с некоторыми оговорками). Это, наверное, самая известная система, после арабской. С нею мы сталкиваемся достаточно часто в повседневной жизни. Это номера глав в книгах, указания века, числа на циферблатах часов, и др. Возникла эта нумерация в древнем Риме. Здесь, например, символ V всегда означает пять, вне зависимости от места его появления в записи числа. Использовалась она для аддитивной алфавитной системы счисления. Записывались цифры числа начиная с больших значений и заканчивая меньшими, слева направо. Если цифра с меньшим значением записывалась перед цифрой с большим значением, то происходило ее вычитание, например IV. Или CCXXXVII=237, но XXXIX=39.

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

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

Наиболее известной позиционной системой счисления является десятичная система счисления. Например, в десятичном числе 254 первая цифра справа означает 4 единицы, соседняя с ней - 5 десятков, а левая - 2 сотни.

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

Двоичная система счисления является самой молодой из существующих. Эта система обладает рядом качеств, делающих ее очень выгодной для использования в цифровых автоматах (компьютерах). Официальное рождение двоичной арифметики связано с именем Г.В. Лейбница, опубликовавшего в 1703 г. Статью, в которой он рассмотрел правила выполнения арифметических действий над двоичными числами. Для двоичной системы необходимо всего два символа – 0, 1. В двоичной системе арифметические операции особенно просты.

Любая позиционная система счисления характеризуется основанием.

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

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

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

Впозиционной системе счисления справедливо равенство:

A a

qn-1 a qn-2

... a qk a q0

a q-1

... a q-m, (3.1)

q n-1

n-2

k

0

-1

-m

 

 

 

 

 

 

27

где Aq - произвольное число, записанное в системе счисления с основанием q; ai -

коэффициенты ряда, т.е. цифры системы счисления; n, m - количество целых и дробных разрядов соответственно.

Максимальное целое число, которое, может быть представлено в m разрядах, Amax=qn - 1. Минимальное значащее, не равное 0 число, которое можно записать в m разрядах дробной

части Amin=q-m.

Например, число А=123,45 обозначает сокращенную запись выражения

А=1·102 + 2·101 + 3·100 + 4·10-1 + 5·10-2.

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

Например, согласно (3.1)

1964,5210 = 1 103 + 9 102 + 6 101 + 4 100 + 5 10-1 + 2 10-2, 124=5378 = 1 82 + 2 81 + 4 80 + 5 8-1 + 3 8-2 + 7 8-3, 1001,11012 = 1 23 + 0 22 + 0 21 + 1 20 + 1 2-1 + 1 2-2 + 0 2-3 + 1 2-4.

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

Основание системы счисления показывает, сколько различных значений в пределах i- того разряда может принимать каждая цифра ai числа A. Номера разрядов в позиционной системе счисления отсчитываются в целой части влево от запятой, а в дробной - вправо от запятой. Причем, нумерация разрядов начинается с 0. Величина основания позиционной системы счисления определяет ее название: для десятичной системы это будет 10, для восьмеричной - 8, для двоичной - 2 и т.д. Как уже отмечалось, обычно вместо названия системы счисления используют термин "код числа". Например, под понятием двоичный код подразумевается число, представленное в двоичной системе счисления, под понятием десятичный код - в десятичной системе счисления и т.д.

Для записи числа в десятичной системе используется 10 различных цифр от 0 до 9

А10 = (0,1,2,3,4,5,6,7,8,9).

В шестнадцатеричной – 16

А16 = (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F),

где A 10, B 11, C 12, D 13, E 14, F 15 .

Ввосьмеричной – 8

А8 = (0,1,2,3,4,5,6,7).

Вдвоичной – 2

А2 = (0,1).

Согласно (1.1) каждый разряд числа в двоичной системе счисления слева от запятой представляется двойкой в соответствующей положительной степени, а справа от запятой - двойкой в отрицательной степени. Например

24

23

22

21

20

2-1

2-2

2-3

2-4

16

8

4

2

1,0

0,5

0,25

0,125

0,0625

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

 

 

 

 

1010 = 10102 = 128 = A16

 

 

 

 

 

1610 = 100002 = 208 = 1016

 

 

Для обработки

25510 = 111111112 = 3778 = FF16.

двоичная система

информации

в

компьютере обычно

используется

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

28

Таким образом, длина числа - это количество позиций (или разрядов) в записи числа. Для разных систем счисления характерна разная длина разрядной сетки, необходимая для записи одного и того же числа. Например, десятичное число 999 (99910) соответственно в шестнадцатеричной, восьмеричной и двоичной системе счисления будет иметь следующий вид 3Е716, 17478, 11111001112, т.е. чем меньше основание системы счисления, тем больше длина числа.

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

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

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

 

 

Примеры кода ASCII

Таблица 3.1

 

 

 

Символы

Десятичный

Двоичный

Восьмеричный

Шестнадца-теричный

 

код

код

код

код

0

48

0110000

060

30

1

49

0110001

61

31

2

50

0110010

62

32

A

65

1000001

101

41

B

66

1000010

102

42

F

70

1000110

106

46

:

58

0111010

72

3F

(

40

0101000

50

28

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

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

-разнообразием и простотой технической реализации элементов с двумя устойчивыми состояниями;

-хорошей различимостью двух состояний, уменьшающей возможность искажения сигналов и сбоев;

-простотой производства арифметических операций;

-экономичностью оборудования.

Экономичность оборудования при использовании двоичной системы счисления проиллюстрируем на следующем примере. Мы проектируем устройство, в котором для отображения каждой цифры числа требуется один элемент. Тогда для представления любой цифры в системе счисления с основанием q потребуется q различных элементов. Для отображения в этой же системе счисления любого числа содержащего nq разрядов, надо Lq=q·nq элементов.

Например, для представления любого числа от 000 до 99910 в десятичной системе требуется n10=3 разряда, каждый из которых содержит по 10 цифр; при L10=30 элементов. Для отображения этих же чисел в двоичной системе требует n2=10, каждый из которых содержит по две цифры, т.е. L2=20 элементов.

Подобное сравнение десятичной и двоичной систем счисления показывает, что десятичная в 1,5 раз менее экономична двоичной.

29

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

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

Вдвоичной системе арифметические операции особенно просты. В двоичной системе не существует «таблицы сложения», которую нужно было бы запоминать, так как перенос в старший разряд начинается с 1+1=10. При сложении больших чисел необходимо лишь складывать по столбцам или разрядам, как в десятичной системе, памятуя лишь о том, что как только сумма в столбце достигнет числа 2, двойка переноситься в следующий столбец (влево) в виде единицы старшего разряда. Вычитание производится так же, как в десятичной системе, не задумываясь о том, что теперь в случае необходимости нужно занимать из столбца слева 2, а не

10.

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

Втаблице 3.2 приведены правила сложения, вычитания и умножения двоичных чисел.

Таблица 3.2

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

 

Сложение

Вычитание

Умножение

0 + 0 = 0

0 - 0 = 0

 

0 х 0 = 0

1 + 0 = 1

1 - 0 = 1

 

1 х 0 = 0

0 + 1 = 1

1 - 1 = 0

 

0 х 1 = 0

1 + 1 = 10

10 - 1 = 1

 

1 х 1 = 1

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

Код суммы каждого i-того разряда сi получается в результате сложения ai+bi+1, где единица соответствует переносу из младшего (i-1) - разряда в i-й, если в младшем разряде код суммы получился больше или равным основанию системы счисления.

Код разности каждого i-го разряда получается в результате вычитания ai-bi-1, где единица соответствует «заему», если он был, в младшие разряды величины, равной основанию системы счисления.

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

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

Таблица 3.3

Правила сложения

Слагаемые

Десятичный

Двоичный

 

Код

код

Перенос

 

1 111

1-е

166

10100110

2-е

47

00101111

Результат

213

11010101

Восьмеричный код

 

Шестнадца-теричный код

11

 

 

 

1

246

 

А5

57

 

2F

325

 

D5

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

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

30