[ Тематический план ] [ Арифметические основы ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
| Вещественными числами (в отличие от целых) в компьютерной технике называются числа, имеющие дробную часть. |
При их написании вместо запятой принято писать точку . Так, например, число 5 — целое, а числа 5.1 и 5.0 — вещественные.
Для удобства отображения чисел, принимающих значения из достаточно широкого диапазона (то есть, как очень маленьких, так и очень больших), используется форма записи чисел с порядком основания системы счисления . Например, десятичное число 1.25 можно в этой форме представить так:
1.25*10 0 = 0.125*10 1 = 0.0125*10 2 = ... ,
или так:
12.5*10 –1 = 125.0*10 –2 = 1250.0*10 –3 = ... .
| Любое число N в системе счисления с основанием q можно записать в виде N = M * q p , где M называется мантиссой числа, а p — порядком . Такой способ записи чисел называется представлением с плавающей точкой . |
Если “плавающая” точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине. Из этого следует:
| Мантисса должна быть правильной дробью , первая цифра которой отлична от нуля: M из [0.1, 1). |
Такое, наиболее выгодное для компьютера, представление вещественных чисел называется нормализованным .
Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе.
Примеры нормализованного представления:
Десятичная система Двоичная система
753.15 = 0.75315*10 3 ; -101.01 = -0.10101*2 11 (порядок 11 2 = 3 10 )
-0.000034 = -0.34*10 -4 ; -0.000011 = 0.11*2 -100 (порядок -100 2 = -410)
Вещественные числа в компьютерах различных типов записываются по-разному. При этом компьютер обычно предоставляет программисту возможность выбора из нескольких числовых форматов наиболее подходящего для конкретной задачи — с использованием четырех, шести, восьми или десяти байтов.
В качестве примера приведем характеристики форматов
вещественных чисел, используемых IBM-совместимыми персональными
компьютерами:
| Форматы вещественных чисел | Размер в байтах | Примерный диапазон абсолютных значений | Количество значащих десятичных цифр |
| Одинарный | 4 | 10 –45 … 10 38 | 7 или 8 |
| Вещественный | 6 | 10 –39 … 10 38 | 11 или 12 |
| Двойной | 8 | 10 –324 … 10 308 | 15 или 16 |
| Расширенный | 10 | 10 –4932 … 10 4932 | 19 или 20 |
Из этой таблицы видно, что форма представления чисел с плавающей точкой позволяет записывать числа с высокой точностью и из весьма широкого диапазона .
При хранении числа с плавающей точкой отводятся разряды для
мантиссы, порядка, знака числа и знака порядка:
|
· Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. · Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате. |
Покажем на примерах, как записываются некоторые числа в нормализованном виде в четырехбайтовом формате с семью разрядами для записи порядка.
1. Число 6.25 10 = 110.01 2 = 0,11001•2 11 :

2. Число –0.125 10 = –0.0012 = –0.1*2 –10 (отрицательный порядок
записан в дополнительном коде):
К началу выполнения арифметического действия операнды операции помещаются в соответствующие регистры АЛУ.
При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков.
| В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу . |
В результате выравнивания порядков одноименные разряды чисел оказываются расположенными в соответствующих разрядах обоих регистров, после чего мантиссы складываются или вычитаются .
В случае необходимости полученный результат нормализуется путем сдвига мантиссы результата влево. После каждого сдвига влево порядок результата уменьшается на единицу.
Пример 1. Сложить двоичные нормализованные
числа 0.10111•2 –1 и 0.11011*2 10 . Разность порядков слагаемых здесь
равна трем, поэтому перед сложением мантисса первого числа сдвигается
на три разряда вправо:
Пример 2. Выполнить вычитание двоичных нормализованных чисел 0.10101*2 10 и 0.11101*2 1 . Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:

Результат получился не нормализованным , поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*2 0 .
| При умножении двух нормализованных чисел их порядки складываются, а мантиссы перемножаются. |
Пример 3. Выполнить умножение двоичных нормализованных чисел:
(0.11101*2 101 )*(0.1001*2 11 ) = (0.11101*0.1001)* 2 (101+11) = 0.100000101*2 1000 .
| При делении двух нормализованных чисел из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя. Затем в случае необходимости полученный результат нормализуется. |
Пример 4. Выполнить деление двоичных нормализованных чисел:
0.1111*2 100 : 0.101*2 11 = (0.1111 : 0.101) * 2 (100–11) = 1.1*2 1 = 0.11•2 10 .
Использование представления чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства.