Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
44
Добавлен:
02.05.2014
Размер:
449.02 Кб
Скачать

3. Формы представления чисел в двоичной системе счисления

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

2m

2m-1

2m-2

21

20

S

xm-1

xm-2

. . .

x1

x0

.

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

63

62

1

0

. . .

.

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

Современные процессоры фирмы Intel ориентированы на систему арифметических команд для работы с фиксиро­ванной запятой после младшего разряда для m+1 = 8/16/32/64. Увеличение разрядности чисел с 8 до 64 бит способствует по­вышению точности и диапазона представления чисел новых типов ЭВМ. Пусть m+1 = 64, тогда целые числа без знака могут быть представлены от нуля до 264-1 (все единицы в разрядной сетке). С учетом знака число Х целое может лежать в диапазоне

- (263-1)  Х  (263-1).

Все числа  Х  1 и Х  263, а также результаты вычислений не могут быть представлены в принятой разрядной сетке и способствуют появле­нию особых случаев и прерываний в вычислениях. Для исключения подобных случаев осуществляют масштабирование массива чисел, т.е. ум­ножают все числа (или часть) на соответствующий коэффициент фиксации. Например, требуется числа Х1 = - 10101,1111 и Х2 = + 101,111110 разместить в разрядной сетке 8 бит с фиксированной запятой со знаком как целые. Тогда определяют наибольшее число  Хi; его масштабируют (сдвигают) 2P таким образом, чтобы наибольшее число значащих старших цифр разместилось в разрядной сетке; младшие цифры, которые не размещаются в разрядной сетке, отбрасывают или иногда используют для округления; все другие числа умножают на полученный коэффициент фиксации и разме­щают в соответствующие разряды.

Так как Х1  Х2, то используем Х1 для определения коэффициента фиксации Х1 = 1.1010111,2-2. Заметим, что в Х1 за знаком располагается единица и что точка, отделяющая знак числа от мантиссы, не включается в разрядную сетку ЭВМ. Тогда число Х1 будет представлено с наибольшей точностью в виде

1101 0111,

где слева старший разряд, а справа младший. С учетом знака и коэффициента фиксации 2-2 число Х2 будет представлено как 00010111. Причем младшие цифры 11 в Х1 и 1110 в Х2 невозможно разместить в этой разряд­ной сетке. Они отброшены, и точность представления этих чисел уменьшается.

Если использовать масштабный коэффициент 2+5, то числа Х1 и Х2 будут представлены в ЭВМ как дробные с фиксированной запятой перед старшим разрядом 1101 0111(Х1), 0001 0111 (Х2). Запятая в них предполагается слева после знака, старшая цифра имеет вес 2-1, младшая - 2-7.

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

Для повышения точности и диапазона представления чисел в ЭВМ используется форма с плавающей запятой вида

Х = 2P М, 1/2   М  1,

где М – нормализованная мантисса числа, 2P – характеристика числа Х, р –порядок, 2 – основание.

В этой форме порядок представлен целым числом р со знаком (Sp), ман­тисса – правильная дробь, т.е. представлена с фиксированной запятой перед старшим разрядом со знаком (S). Так как мантисса нормали­зована 1/2  М  1, старшая цифра мантиссы числа всегда равна 1, и любое число размещается в разрядной сетке ЭВМ с наибольшей возможной точностью.

Так число

Х1 = - 2+5  0,1010111110…0.

Тогда в разрядной сетке Х1(2) будет представлено с плавающей запятой значениями порядка и мантиссы со знаками в виде

Sp

p

S

M

0

0 … 0101

1

1 0 1 0 1 1 1 1 1 0 … 0

m

0

-1 -n

Для упрощения действий над порядками их сводят к микрооперациям над целыми положительными числами путем искусственного смещения значения р на величину +pmax.­ Смещенный порядок определяется по формуле

E = p +  pmax.

В смещенном порядке знак отсутствует. Для представления Е необходимо столько же разрядов, как и для представления модуля порядка и знака. Так, если порядок будет занимать один байт в числе, то 7 разрядов в обычном представлении в нем отводится под модуль порядка, и pmax = 27-1. Теперь, прибавляя к любому порядку число pmax (+127), получим смещенный поря­док. Например, если p = + 5, то E(10) = 5 + 127 = 132. Размещая Е(2) без знака, получим представление смещенного порядка 1000 0100 в разрядной сетке 1 байт. Смещенный порядок 0…0 соответствует наибольшему отрицатель­ному порядку, а 1…1 - наибольшему положительному порядку. Величина E = pmax указывает на нулевой порядок. Смещенный порядок намного упро­щает операции сравнения и сдвига чисел.

Если при сложении мантисс появляется цифра с весом 20, то есть ман­тисса вида 1, …, то считается, что произошло левое нарушение нормализации числа, когда  М  1. А если в микрооперациях получена мантисса  М  1/2, то это соответствует правому нарушению нормализации числа, ко­гда в старшем разряде мантиссы с весом 2-1 появляется нуль.

Учитывая, что нормализованная мантисса всегда содержит 1 в стар­шем разряде, часто мантиссу сдвигают на один разряд влево, увеличивая точность представления числа включением в разрядную сетку еще одного младшего разряда мантиссы. Единица с весом 2-1 сдвигается в разряд с весом 20, однако в разрядной сетке ОЗУ она не размещается и восстанавливается только в регистрах сопроцессора. Если представить число Х1 в формате с одинарной точностью (ОТ), где под порядок отводится байт, оно будет иметь вид

Наибольшее отличное от нуля по модулю число, которое может быть представлено в фор­мате ОТ, будет равно Xmax = 2+127  (1 - 2-23), а наименьшее Xmin = 2-127  1/2 = 2-128. В зависимости от целей программирования в ЭВМ используются различные форматы данных.

Соседние файлы в папке Дубинин Н.М. Организация ЭВМ и Систем