- •Колесников л.П. Глава 1
- •Информатика, информация, сигналы
- •Источник информации Канал связи Приемник информации
- •1.2 Способы представления дискретной информации
- •1.3 Формы представления чисел в эвм
- •1.4 Представление информации в микропроцессорах класса Pentium
- •1.5 Информационные меры
- •1.6 Кодировка текстовых данных
1.3 Формы представления чисел в эвм
Формы, диапазон и точность представления чисел
Как известно, в ЭВМ применяется двоичная система счисления. Может быть доказано, что при этом на построение ЭВМ тратится наименьшее количество базовых аппаратных элементов — «вентилей». Точнее, оптимальным основанием системы счисления по критерию «минимум аппаратных расходов» является основание натурального логарифма е= 2,72.
Однако по ряду очевидных причин для ЭВМ принято Р=2. Достаточно вспомнить, что одна из первых электронных ВМ ENIAC содержала 17 468 электронных ламп, имела размеры около 6 м в высоту и 30 м в длину. Обилие применяемых вакуумных ламп, габаритные размеры машины отчасти объяснялись тем, что она работала с десятичными числами.
Двоичные числа в компьютерах размещаются в ячейках памяти или в регистрах, которые состоят из запоминающих элементов — триггеров.
В ячейке или триггере хранится значение одного двоичного разряда — бит информации.
Разрядной сеткой компьютера называется совокупность запоминающих элементов для размещения одного двоичного числа. Для разных классов компьютеров длина разрядной сетки составляет 8, 16, 32, 64 и больше разрядов.
Форматом называется способ размещения компонентов числа в разрядной сетке, то есть последовательность и позиции знака, мантиссы, порядка и др.
Формы представления чисел
В компьютерах используются две формы представления числа:
• с фиксированной запятой перед старшим разрядом числа (для правильной дроби) или после младшего (для целого числа);
• с плавающей запятой, место положения которой задается порядком числа.
Место запятой в обоих форматах понимается неявно, без использования дополнительных разрядов. По традиции нумерация разрядов в больших машинах осуществляется слева направо, а в мини- и микрокомпьютерах и микропроцессорах— справа налево.
Фиксированная запятая (точка).
З амечание. В русском языке принято называть разделитель целой и дробной части дроби запятой, а в английском – точкой. Поскольку современная вычислительная терминология формировалась на английском языке, то словосочетания «фиксированная точка» и «плавающая точка» вошли в русскую компьютерную лексику.
В форме представления с фиксированной запятой (точкой) числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной.
Например, для числа 1355,1875(10), что соответствует 010101001011,0011(2), запись следующая:
Целая часть Дробная часть
-
010101001011
0011
=1355 + 3/16
15 4 3 0
Представление числа с фиксированной точкой концептуально самое простое, берется двоичное число и объявляется, что определенная часть его младших разрядов представляет собой дробную часть в позиционной системе счисления.
Например, пусть числа представлены в десятичной системе счисления и имеют пять разрядов в целой части числа (до запятой) и пять в дробной части (после запятой).
Числа, записанные в такую разрядную сетку, имеют вид:
+00721.35500.
+00000.00328.
-10301.20260.
Диапазон значащих чисел N в системе счисления с основанием Р при наличии т разрядов в целой части и s разрядов в дробной части числа (без учета знака числа) будет таким:
P-s ≤ N≤ Pm – Р-s
Например, при Р=2, m=10 и s = 6 числа изменяются в диапазоне 0,015 < N< 1024. Если в результате операции получится число, выходящее за допустимые пределы, произойдет переполнение разрядной сетки, и дальнейшие вычисления теряют смысл.
Положение запятой строго фиксировано и при этом предполагается:
- положение запятой закрепляется в определенном месте и сохраняется неизменным для всех чисел, изображаемых в принятой разрядной сетке машины;
- хотя запятая и фиксируется, но никак не выделяется в коде числа, а только подразумевается.
Обычно в ЭВМ используется два способа расположения запятой:
-перед старшим разрядом (Р=0);
-после младшего разряда (Р=n), где n –число разрядов, отводимых под цифровую часть числа. Во втором случае представляются только целые числа со знаком.
Выход исходных чисел, а также чисел, полученных в процессе вычислений, за пределы допустимого диапазона приведет к грубым ошибкам. Чтобы этого избежать, необходимо при разработке программ исходные числа масштабировать.
Недостатки. Имеет небольшой диапазон представления чисел и поэтому чаще всего неприемлема при вычислениях. В современных компьютерах естественная форма представления используется как вспомогательная и только для целых чисел.
Достоинство. Эта форма наиболее проста, естественна и для представления чисел с фиксированной точкой можно построить сравнительно несложное арифметическое устройство с высоким быстродействием.
В памяти ЭВМ числа с фиксированной точкой хранятся в трех форматах:
а) полуслово — 16 бит, или 2 байта;
б) слово — 32 бита, или 4 байта;
в) двойное слово — 64 бита, или 8 байтов.
Отрицательные числа с ФТ записываются в разрядную сетку в дополнительных кодах, которые образуются прибавлением единицы к младшему разряду обратного кода. Обратный код получается заменой единиц на нули, а нулей на единицы в прямом двоичном коде.
В числах со знаком выделяют дополнительный знаковый разряд (обычно, крайний слева). В нем для знака плюс записывают цифру 0, а для знака минус — цифру 1. В числах без знака все разряды числа определяют модуль. Форматы двоичных дробных и целых чисел со знаком, с нумерацией разрядов справа налево и значением их веса показаны на рис. 1.7.
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Нумерация разрядов
-
+/-
26
25
24
23
22
21
20
+/-
,
2-1
2-2
2-3
2-3
2-4
2-6
2-7
Форма байта для целого числа Форма байта для правильной дроби
Рисунок 1.7 – Формат байта
Числа в разрядную сетку записывают в соответствии с весом позиций. Не занятые разряды заполняют нулями, как это показано на рис. 1.8 для чисел +0,72510 = +0,101112 и -4710 = -1011112.
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
-
1
0
1
0
1
1
1
1
0
,
1
0
1
1
1
0
0
Запись целого числа -1011112 Запись правильной дроби +0,101112
Рисунок 1.8 – Запись чисел
Интервал числовой оси, заключенный симметрично между максимальным и минимальным значением числа, называется диапазоном представления.
Абсолютное значение целого числа А изменяется в пределах:
Аmin ≤ | А | ≤ Аmax Аmin = 1; Аmax = 2k - 1, (1.1 )
где к— количество разрядов цифровой части числа.
Из выражения (1.1) следует, что числа, по абсолютному значению меньше единицы, воспринимаются как "машинный нуль"; числа, больше Аmax, вызывают переполнение разрядной сетки. Диапазон представления целых чисел с учетом симметрии относительно нуля числовой оси
D
Пример 1.1
Рассчитать максимальное значение и диапазон представления целого числа со знаком в 16-разрядной сетке. На основе выражений (1.1) и (1.2) для k = 15 получаем:
Аmax = 215 - 1 = 32767; D = 2Аmax = 65534.
A = 2Amax = 2(2k-1) ≈ 2k-1 (1.2)
Абсолютное значение правильной дроби В изменяется в пределах:
Вmin ≤ | В | ≤ Вmax Вmin = 2-k Вmax = 1 - 2k, (1.3)
Правильная дробь, по модулю меньше 2-k, воспринимается как "машинный нуль"; числа, больше единицы, вызывают переполнение разрядной сетки.
Диапазон представления правильной дроби:
D
Пример 1.2
Рассчитать максимальное значение и диапазон представления правильной дроби в 16-разрядной сетке. На основе выражений (1.3) и (1.4) для k = 15 получаем:
Вmax = 1 - 215 = -32767 D = 2Вmax = -65534.
.
B = 2Bпах = 2(1-2-k) ≈ 2 (так как 1 >> 2-k. ) (1.4)
Точность представления чисел в компьютере определяется абсолютной и относительной погрешностью.
Абсолютная погрешность ∆ представления чисел в компьютере составляет:
для целых чисел: ∆А = 1/2 = 2-1 где А –целое число (1.5)
для правильной дроби: ∆В = 2k/2 = 2-(k+1) где В –правильная дробь (1.6)
Из выражения (1.5) следует, что абсолютная погрешность представления целых чисел в форме с фиксированной запятой равна половине младшего разряда и не зависит от длины разрядной сетки. Из выражения (1.6) видно, что абсолютная погрешность представления правильной дроби в форме с фиксированной запятой уменьшается при увеличении длины разрядной сетки.
Относительная погрешность δ представления числа задается отношением абсолютной погрешности к текущему значению числа и находится в пределах
δmin ≤ δ ≤ δmax
Для целых чисел в форме с фиксированной запятой минимальное и максимальное значения относительной погрешности
δAmin = = ≈ 2-(k+1) δAmax = = = 0,5
Такими же формулами определяются минимальное и максимальное значения относительной погрешности для правильной дроби с фиксированной запятой.
Относительная погрешность представления чисел в форме с фиксированной запятой существенно зависит от значения числа и значительно возрастает для малых чисел.
Числа с плавающей запятой
Вычислительные системы широко используют представление чисел с плавающей точкой. Идея этого представления состоит в том, чтобы нормализовать позиционную двоичную дробь, избавившись от незначащих старших нулевых битов освободив место для (возможно) значащих младших разрядов. Сдвиг, который нужен для нормализации, записывается в битовом поле, называемое порядком. Само же число называется мантиссой.
Пример. Число 0072.3500(10) -до нормализации и 0,7235х102 -после.
В двоичной СС запись будет следующей: до нормализации -001001000,100011 и после -1001000100011 х 27
Целая часть Дробная часть
-
0
0
1
0
0
1
0
0
0
,
1
0
0
0
1
1
До нормализации
15 6 5 0
-
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
После нормализации
Порядок =7 мантисса
В форме представления с плавающей запятой (точкой) число изображается в виде двух групп цифр:
мантисса;
порядок.
При этом абсолютная величина мантиссы должна быть меньше 1, а порядок должен быть целым числом.
Например, приведенные ранее числа в нормальной форме запишутся следующим образом:
+0,721355 х 103;
+0,328 х 10-3;
-0,103012026 х 105.
Нормальная форма представления обеспечивает большой диапазон отображения чисел и является основной в современных компьютерах.
В форме с плавающей запятой числа представляются в виде произведений:
C = qП ∙M = X∙ M (1.7)
г де q — основание системы счисления (обычно целая степень числа 2);
П — порядок числа длиной k+1 (целое число со знаком, где к –число знач.цифр);
М— мантисса числа длиной г +1 (правильная дробь со знаком);
X - характеристика числа.
Знак всего числа определяется знаком мантиссы.
Для мини-компьютеров основания порядка и мантиссы совпадают (далее предполагается этот случай), а для больших машин — они различны. Представление числа формулой (1.7) называют также полулогарифмическим, потому что только часть числа — характеристика — представляется в логарифмической форме.
Следует заметить, что все числа с плавающей запятой хранятся в машине в так называемом нормализованном виде.
Нормализованным называют такое число, старший разряд мантиссы которого больше нуля. У нормализованных двоичных чисел, следовательно, 0,5 < │М│< I.
Нормализованные, т. е. приведенные к правильной дроби, числа:
10,3510 = 0,103510 x 10+2;
0,000072458 = 0,72458 х 8 -4;
F5C,9B16 = 0,F5C9B16 x 16+3;
В памяти ЭВМ числа с ПТ хранятся в двух форматах:
слово — 32 бита, или 4 байта;
двойное слово — 64 бита, или 8 байт.
Разрядная сетка для чисел с ПТ имеет следующую структуру:
нулевой разряд — это знак числа (0 — «минус», 1 — «плюс»);
с 1 по 7 разряд записывается порядок в прямом двоичном коде, пустые разряды заполняются нулями. В первом разряде указывается знак порядка (1 — «плюс» или 0 — «минус»);
с 8 по 31 (63) указывается мантисса, слева направо без нуля целых в прямом двоичном коде и для отрицательных чисел и пустые разряды заполняются нулями.
Мантисса называется нормализованной, если ее значение определяется неравенством вида
≤ |M| < 1 т.е. для основания q = 2 имеем: 0,5 < М< 1.
т
Пример 1.3
Иллюстрация записи числа с плавающей запятой: А2 = 21∙110,111 = 22∙11,0111 = 24∙0,110111
о есть в старшем разряде модуля мантиссы должна быть записана единица.
Значение порядка (П = 1, 2 и 4) указывает на количество позиций, на которые "плавает" запятая.
Формат числа с плавающей запятой в 16-разрядной сетке показан на рис. 1.8. Тут для модулей порядка и мантиссы отведено соответственно пять (с 10 по 14) и девять (с 0 по 8) разрядов. Запятая в порядке размещена (условно) после младшего разряда, а в мантиссе — перед старшим. Знаки порядка и мантиссы размещены перед их старшими разрядами.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Нумерация разрядов числа
-
+/-
Порядок
+/-
Мантисса
Рисунок 1.8 –Формат чисел в форме плавающей запятой
Абсолютное значение числа С в форме с плавающей запятой с учетом формул (1.7), (1.9) и (1.13) изменяется в пределах
Xmin Mmin = Cmin ≤ |C| ≤ Cmax = Xmax Mmax (1.8)
где Xmin =2-Пmax ( Пmax = 2r -1, где r –разрядность модуля порядка )
Mmin =2-1
Xmax =2+Пmax
Mmax =1-2-k (k –разрядность модуля мантиссы)
Диапазон представления чисел в форме с плавающей запятой
D
Пример 1.4
Рассчитать значение диапазона ДC для числа С при г = 5, к = 9. С учетом выражения (1.15) получаем:
если Пmax = 2r -1= 25 – 1 = 31 то DC =2+Пmax+1 =231+1= 232
что приблизительно соответствует десятичному числу 1032∙0,3 ≈ 109.
Диапазон представления чисел с плавающей запятой приблизительно больше в Пmax раз диапазона представления чисел в форме с фиксированной запятой.
C = 2Cmax = 2∙ 2+Пmax(1-2-k) ≈2+Пmax+1 (1.9)
Абсолютная погрешность представления чисел в форме с плавающей запятой зависит от погрешности мантиссы и порядка числа:
∆С = ∆М∙2±П; ∆М =2(k+1) (1.10)
где ∆M— погрешность представления мантиссы.
Минимальная и максимальная относительные погрешности представления чисел в форме с плавающей запятой не зависят от характеристики (она записывается в числителе и знаменателе выражения и потому сокращается).
С учетом формул (1.14) и (1.16) относительные погрешности рассчитывают из соотношений:
δCmin = = = 2-(k+1) ; δCmax = = = 2-k (1.11)
Из выражений (1.17) следует, что относительные погрешности представления чисел в форме с плавающей запятой практически постоянны во всем диапазоне чисел.