- •Арифметические основы вт (к.А. Нешумова эвм и системы, 1989)
- •1 Общие сведения о системах счисления
- •2 Позиционные системы счисления, применяемые в эвм
- •2.1 Двоичная система счисления
- •2.2 Двоично-десятичная система счисления
- •2.3 Восьмеричная система счисления
- •2.4 Шестнадцатеричная система счисления
- •3.6.1 Перевод целых чисел
- •3.6.2 Перевод правильных дробей
- •3.6.3 Перевод смешанных чисел
- •3.7 Перевод чисел из двоичной системы счисления в десятичную и обратно с помощью степенной таблицы
- •4 Арифметические действия над двоичными числами
- •4.1 Сложение двоичных чисел
- •4.2 Вычитание двоичных чисел
- •4.3 Умножение двоичных чисел
- •6 Операции вычитания чисел без знака в 8ой и 16ой системах счисления
- •6.1 Восьмеричная и шестнадцатеричная системы счисления
- •7 Представление данных в компьютере
- •7.1 Представление числовой информации
- •7.1.1 Представление чисел с фиксированной точкой
- •7.1.2 Представление чисел с плавающей запятой
- •7.1.3 Кодирование отрицательных чисел
- •7.2 Представление символьной информации
7.1.2 Представление чисел с плавающей запятой
Представление чисел с плавающей запятой основывается на изображении чисел в полулогарифмической форме с использованием пары значений (± р, ± М), что соответствует записи чисел в нормальной форме в виде A = d±p· (±М), где d - основание системы счисления; р - целое число, называемое порядком числа А; М - мантисса числа А (обычно |М|<1).
Фактически положение запятой в мантиссе М определяется величиной порядка р. С изменением р в большую или меньшую сторону запятая соответственно перемещается влево или вправо, т. е. «плавает» в изображении числа.
Пример 7.1. Представить в форме с плавающей запятой числа 15810 и 1011012.
Решение:
1. 15810 = 103 · 0,158 = 104 · 0,0158 = 105 · 0,00158;
2.
1011012 =
.
Числа, удовлетворяющие условию 1/d≤М<1, называют нормализованными.
Как показано на рисунке 3.2, в разрядной сетке ЭВМ фиксируются знак числа, знак порядка, порядок числа и числовое выражение мантиссы.
В памяти ЭВМ числа хранятся нормализованными. Нормализованное представление чисел позволяет сохранять в разрядной сетке большое количество значащих цифр, что повышает точность вычислений.
0 |
1 |
2 |
3 |
|
m |
m+1 |
m+2 |
|
m+n+1 |
0 |
β 0 |
β2 |
β3 |
… |
βm |
1 |
2 |
… |
n |
Знак числа |
Знак порядка |
|
|
|
|
|
|
|
|
Рисунок 7.2 – Разрядная сетка ЭВМ для представления чисел с плавающей запятой
Обычно в ЭВМ нормализация осуществляется автоматически как при вводе чисел, так и в процессе вычислений (после выполнения очередной операции). При этом мантисса может сдвигаться влево на необходимое число разрядов (увеличиваться); при этом производится соответствующее уменьшение порядка, т.е. выполняется «нормализация влево».
При выполнении операций над числами с плавающей запятой возможно переполнение разрядной сетки, так же как и с числами с фиксированной запятой. В таком случае появляется единица слева от запятой. Такого рода переполнение исключается сдвигом мантиссы вправо на один разряд и увеличением порядка на единицу, т. е. производится «нормализация вправо».
От количества разрядов, отводимых для хранения порядка, зависит диапазон записываемых чисел, а от количества разрядов, отводимых для мантиссы,- точность записи числа. Если под цифровые разряды мантиссы отведено n, а порядка - т разрядов, то максимальное и минимальное по абсолютной величине нормализованные двоичные числа соответственно равны:
,
Диапазон чисел с плавающей запятой определяется неравенством:
При достаточно больших n (обычно n30) – 1-2n 1 и неравенство принимает вид:
Из этого неравенства видно, что диапазон чисел зависит в основном от порядка р. Если число превышает верхний предел неравенства, то происходит переполнение разрядной сетки и ЭВМ автоматически останавливается. Если число выйдет за нижний предел неравенства, то оно будет соответствовать машинному нулю.
