Информация: хранение вещественных чисел в памяти ЭВМ

При записи дробных чисел обращают внимание на точность их представления, т.е. на количество значащихся цифр.

Существуют два типа представления вещественных чисел:

1. С плавающей запятой, точкой – нормальная запись:

Основан на нормальной (экспоненциальной) записи чисел. Число представляется в виде:

x = ± m∙np, где m – мантисса, р – порядок, n – основание.

Представление числа в формате с плавающей точкой различно.

Пример: 12.3456 = 0,123456*102 = 1234,56*10-2.

Положение точки в мантиссе определяется величиной порядка p с изменением порядка в большую или меньшую сторону точка перемещается вправо или влево, т.е. “плавает” в изображении числа.

Нормализация при вводе числа и в процессе вычислений осуществляется автоматически. При этом мантисса сдвигается влево на необходимое число разрядов. Происходит соответственно увеличение порядка. При сложении нормального числа одного порядка, может возникнуть переполнение разрядной сетки (появляется 1 слева от запятой). Такого рода переполнение исключается сдвигом мантиссы вправо на 1 разряд и увеличение порядка на 1 единицу. Такая коррекция называется нормализация вправо.

Мантисса должна удовлетворять условию: 0.1n ≤ m < 1, т.е. быть меньше 1 и первая значащая цифра не равна нулю. В памяти компьютера мантисса хранится как целое число, содержащее только значащие цифры. Таким образом, представление вещественного числа сводится к представлению пары целых чисел: мантиссы и порядка.

Пример. 4 байтовая ячейка памяти – 24 разряда под мантиссу.

+/- порядок Мантисса
1 бит 7 бит 2,3,4 байты
1-й байт  

В 1-м байте содержится машинный порядок, в старшем бите хранится знак числа. На порядок отводится 7 бит (27 = 128). 128 значений может принимать диапазон значений порядка. Порядок может быть положительным или отрицательным (-64…+63).

В машинном представлении порядок смещен относительно математического и имеет только положительные значения. Смещение формируется так, чтобы минимальному математическому значению порядка соответствовал нуль (0).Связь между машинным и математическим порядком: Мp=p+6410.

Для записи внутреннего представления вещественного числа надо:

1. Перевести модуль данного числа в двоичную систему счисления с 24-мя значащими цифрами.

2. Нормализовать двоичное число.

3. Найти машинный порядок.

4. Учитывая знак числа записать его представление в 4-х байтовом машинном слове.

Пример: 250.187510 – записать внутреннее представление в 4-х байтовой ячейке.

1. Перевод в двоичную систему с 24 значащими цифрами 250,187510= 11111010,0011000000000000002 (количество цифр до запятой = 810 = 10002).

Запишем в форме нормализованного двоичного числа с плавающей точкой 0,1111 1010 0011 0000 0000 0000*1010002.

Здесь мантисса, основание системы счисления (210=102) и порядок (810=10002) записаны в двоичной системе.

Вычислим машинный порядок: М=10002+100 00002= 100 10002

Запишем в 4-х байтовой ячейки с учетом знака:

        0000 0000
1-й байт 2-й байт 3-й байт 4-й байт

2. С фиксированной запятой, точкой – естественная запись:

Все разряды ячейки кроме знакового служат для изображения разрядов чисел, каждому разряду ячейки соответствует один и тот же разряд числа, что и фиксирует место запятой перед определенным разрядом. Такая система упрощает выполнение арифметических действий, но сильно ограничивает диапазон чисел, которые могут быть представлены в этом типе. Диапазон – 1< x < 1 для представления чисел не укладывающихся в диапазон вводят масштабные коэффициенты. Целые типы данных представляются в ЭВМ в формате с фиксированной запятой.

При работе с вещественными числами надо помнить:

1. При записи чисел возникают ошибки, которые возрастают при операциях.

2. Не разумно сравнивать 2 вещественных числа на точное равенство.

3. В результате вычитания возможна потеря точности.

4. «+» или «–» малого числа может никак не сказаться на результате.

5. Получение очень больших чисел может вызвать переполнение порядка, а очень малые – исчезновение числа.

Диапазон значений вещественных чисел шире, чем у целых. Наименьшее по абсолютной величине число равно 0, а наибольшее по модулю, это число с самой большой мантиссой и с самыми большим порядком. Множество вещественных чисел в формате с плавающей точкой является ограниченным и дискретным. Количество вещественных чисел, точно представляемых в памяти вычисляется по формуле N = 2t*(Mpmax = Pmin+1)+1, где

T – количество двоичных разрядов мантиссы

Mpmax – максимальное значение математического порядка.

Pmin – минимальное значение математического порядка.

Пример: для 4-х байтовой ячейки

Mpmax = 63, t = 24, Pmin = -64,

N = 2146683548.

Точность числа – количество значащих цифр, которое удается сохранить в ограниченном числе разрядов.

Вещественные типы данных в Pascal:

Размер Точность Обозначение Диапазон
  7,8 Single 1.5*10-45…3.4*1048
  11,12 Real 2.9*10-39…1.7*1038
  15,16 Double 5.10-331…1.7*10308
  19,20 extended 1.9*10-4952…1.1*104932

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: