Представление чисел с фиксированной и плавающей запятой
В вычислительных машинах применяются две формы представления двоичных чисел:
· естественная форма или форма с фиксированной запятой(точкой);
· нормальная форма или форма с плавающей запятой(точкой).
В форме представления с фиксированной запятойвсе числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной.
Например: в десятичной системе счисления имеется 5 разрядов в целой части числа (до запятой) и 5 разрядов в дробной части числа (после запятой); числа, записанные в такую разрядную сетку, имеют вид:
+00721,35500; +00000,000328; -10301,20260.
Эта форма наиболее проста, естественна, но имеет небольшой диапазон представления чисел и поэтому чаще всего не приемлема при вычислениях. Диапазон значащих чисел n всистеме счисления с основанием Р при наличии т разрядов в целой части и s разрядов в дробной части числа (без учета знака числа) будет:
P-s ≤ N ≤Pm – P-s.
Например, при Р = 2, т = 10 и s = 6 числа изменяются в диапазоне:
0,015 <N < 1024.
Если в результате операции получится число, выходящее за допустимый диапазон, происходит переполнение разрядной сетки, и дальнейшие вычисления теряют смысл. В современных ЭВМ естественная форма представления используется как вспомогательная и только для целых чисел.
В форме представления с плавающей запятойкаждое число изображается в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая – порядком,причем абсолютная величина мантиссы должна быть меньше 1, а порядок – целым числом. В общем виде, число в форме с плавающей запятой может быть представлено так:
N = ±M·P±r,
где М – мантисса числа (|М| < 1 ); r – порядок числа (r –целое число); Р – основание системы счисления. Например, приведенные ранее числа в нормальной форме запишутся так:
+0,721355·103; +0,328·10-3; -0,103012026·105.
Нормальная форма представления имеет огромный диапазон отображения чисел и является основной в современных компьютерах. Так, диапазон значащих чисел в системе счисления с основанием Р при наличии т разрядов у мантиссы и s разрядов у порядка (без учета знаковых разрядов порядка и мантиссы) будет:
.
Пример. При Р = 2, m = 22 и s = 10 диапазон чисел простирается примерно от 10-300 до 10300. Для сравнения: количество секунд, которые прошли с момента образования планеты Земля, составляет всего 1018.
Следует заметить, что все числа с плавающей запятой хранятся в машине в так называемом нормализованном виде. Нормализованным называют такое число, в старшем разряде мантиссы которого стоит единица.
Выполнение операций над числами с плавающей запятой
При сложении (вычитании)чисел с одинаковыми порядками их мантиссы складываются (вычитаются), а результату присваивается порядок, общий для исходных чисел. Если порядки исходных чисел разные, то сначала эти порядки выравниваются (число с меньшим порядком приводится к числу с большим порядком), затем выполняется операция сложения (вычитания) порядков. Если при выполнении операции сложения мантисс возникает переполнение, то сумма мантисс сдвигается вправо на один разряд, а порядок суммы увеличивается на 1.
При умножениичисел с плавающей запятой их мантиссы перемножаются, а порядки складываются.
При делениичисла с плавающей запятой мантисса делимого делится на мантиссу делителя, а для получения порядка частного из порядка делимого вычитается порядок делителя. При этом если мантисса делимого больше мантиссы делителя, то мантисса частного окажется больше 1 (происходит переполнение) и ее следует сдвинуть на один разряд вправо, одновременно увеличив на единицу порядок частного.