Processing math: 100%
Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Хранение в памяти вещественных чисел

В 60-х и 70-х гг. не было единопризнанного стандарта представления чисел с плавающей запятой, из-за чего программы того времени не были переносимыми приложениями. Также большой проблемой были «странности» разных компьютеров, которые нужно было знать и учитывать при создании программ.

В 1976 году была появилась инициатива создать единый стандарт для представления чисел с плавающей запятой, что существенно упростило работу с числами.

Вычисления компьютера ограничены его памятью, поэтому дробная часть вещественных чисел не является бесконечной и хранится в памяти с определенной точностью.

Числа в нормализованном виде чаще всего записываются только на экране компьютера, поэтому принято запятую в них заменять на точку.

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

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

Нормализованная запись числа

Определение 1

Запись в виде

a=±mqn

является нормализованной записью отличного от нуля действительного числа,

где n -- любое целое число (в том числе и ноль),

m -- правильная дробь в системе счисления с основой q, у которой первая цифра после запятой не равна нулю, то есть $\frac{1}{q}\le m

m называется мантиссой числа, n -- порядком числа, q -- основанием системы счисления.

Пример 1

Приведем числа десятеричной системы к нормализованной записи:

1.3579=0.13579101; 10000=0.1105; 0,123456=0.123456100.

Приведем число восьмеричной системы счисления к нормализованной записи:

0,00001198=0.119884 (порядок записан в десятичной системе).

Приведем число двоичной системы счисления к нормализованной записи:

200.0022=0.200002223.
«Хранение в памяти вещественных чисел» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Ноль в десятичной системе будет записан в нормализованном виде следующим образом:

Определение 2

Нормализованная экспоненциальная запись (НЭЗ) числа - это запись в виде

a=±mqn,

где n -- любое целое число (в том числе и ноль),

m -- правильная дробь в системе счисления с основой q, целая часть которой состоит из одной цифры,

m --мантисса числа, а n -- порядок (или экспонента) числа.

Рассмотрим вышеописанные числа в нормализованной экспоненциальной записи.

Пример 2

НЭЗ десятичных чисел:

1.3579=0.13579101=1.3579100; 10000=0.1105=1.0104; 0.123456=0.123456100=1.23456101.

НЭЗ восьмеричного числа:

0.00001198=0.119884=1.19885.

НЭЗ двоичного числа:

200.0022=0.200002223=2.00002224.
Замечание 1

Обратите внимание, что в НЭЗ записи первая цифра после запятой может быть нулём, в отличие от нормализованной записи.

Хранение чисел с плавающей запятой

Для хранения вещественных чисел в памяти компьютера часть разрядов ячейки отводится для записи порядка числа, остальные -- для записи мантиссы. По одному разряду в каждой группе разрядов отводится для знака порядка и знака мантиссы. Чтобы не хранить знак порядка был придуман смещенный порядок.

Если для задания порядка выделено k разрядов, то к истинному порядку (ИП) прибавляют смещение, таким образом, смещённый порядок (СП) рассчитывается по формуле:

Пример 3

Найдем смещённый порядок для истинного порядка, лежащего в диапазоне от 127 до +128.

Возьмем начальное значение ИП= 127:

СП=127+2811=127+1281=0.

Возьмем конечное значение ИП = 128:

СП=128+2811=128+1281=255.

Таким образом, ИП, лежащий в диапазоне от 127 до +128, представляется смещённым порядком, значения которого меняются в диапазоне от 0 до 255.

Алгоритм представления вещественного числа:

  1. Перевести число в двоичную систему счисления.

  2. Привести число к нормализованной записи.

  3. Найти смещённый порядок числа.

  4. Поместить знак, порядок и мантиссу в соответствующие разряды.

Пример 4

Представим число 25.625 в 4-байтовом представлении (1 бит отводится под знак числа, 8 бит -- под смещённый порядок, остальные биты -- под мантиссу).

Будем действовать по алгоритму:

  1. Переведем число 25.625 в двоичный код:



    Рисунок 1.

    2510=110012



    Рисунок 2.

    2510=110012 0.62510=0.1012 25.62510=11001.1012
  2. Приведем число к нормализованному виду:

    11001.1012=1.1001101224
  3. Найдем смещенный порядок числа:

    СП=127+4=131
  4. Поместим знак, порядок и мантиссу в соответствующие разряды:



    Рисунок 3.

Дата написания статьи: 18.04.2016
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot
AI Assistant