Представление вещественных чисел в
компьютере.
Для представления вещественных чисел в современных компьютерах принят способ представления с плавающей запятой. Этот способ представления опирается на нормализованную (экспоненциальную) запись действительных чисел.
Как и для целых чисел, при представлении действительных чисел в компьютере чаще всего используется двоичная система, следовательно, предварительно десятичное число должно быть переведено двоичную систему.
Нормализованная запись числа.
Примеры:
Примеры:
3,1415926
= 0, 31415926 * 10^1;
1000=0,1
* 10^4;
0,123456789
= 0,123456789 * 10^0;
0,00001078 =
0,1078 * 8^(-4); (порядок записан в 10-й системе)
1000,00012 =
0, 100000012 * 2^4.
Так как число ноль не может быть записано в нормализованной форме в том виде, в каком она была определена, то считаем, что нормализованная запись нуля в 10-й системе будет такой:
0 = 0,0 * 10^0.
Сложение и вычитание
При
сложении и вычитании сначала производится подготовительная операция,
называемая выравниванием порядков.
В
процессе выравнивания порядков мантисса числа с меньшим
порядком сдвигается в своем регистре вправо на количество разрядов,
равное разности порядков операндов. После каждого сдвига порядок
увеличивается на единицу.
В
результате выравнивания порядков одноименные разряды чисел оказываются
расположенными в соответствующих разрядах обоих регистров, после
чего мантиссы складываются или вычитаются. В случае необходимости
полученный результат нормализуется путем сдвига мантиссы результата влево.
После каждого сдвига влево порядок результата уменьшается на единицу.
Пример
1. Сложить двоичные нормализованные числа 0.10111 . 2–1 и
0.11011 . 210. Разность порядков слагаемых здесь равна трем, поэтому
перед сложением мантисса первого числа сдвигается на три разряда вправо:
Пример 2. Выполнить вычитание двоичных нормализованных
чисел 0.10101 . 210 и 0.11101 . 21. Разность порядков
уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием
мантисса второго числа сдвигается на один разряд вправо:
Результат
получился не нормализованным, поэтому его мантисса сдвигается влево
на два разряда с соответствующим уменьшением порядка на две единицы:
0.1101 .20.
Умножение
При
умножении двух нормализованных чисел их порядки складываются, а мантиссы
перемножаются.
Пример
3. Выполнить умножение двоичных нормализованных чисел:
(0.11101 . 2101) . (0.1001 . 211)
= (0.11101 . 0.1001) . 2(101+11) =
0.100000101 . 21000.
Деление
При
делении двух нормализованных чисел из порядка делимого вычитается порядок
делителя, а мантисса делимого делится на мантиссу делителя. Затем в случае
необходимости полученный результат нормализуется.
Пример 4. Выполнить деление двоичных нормализованных
чисел:
0.1111 . 2100 :
0.101 . 211 = (0.1111 : 0.101) . 2(100–11) =
1.1 . 21 = 0.11 . 210.
Использование
представления чисел с плавающей точкой существенно усложняет схему
арифметико-логического устройства.