Представление числовых данных с плавающей запятой
Представление числовых данных в форме с плавающей запятой является основным в научно-технических расчетах. В последнее время числа в форме с плавающей запятой широко применяются и в области трехмерной компьютерной графики. Это операции над векторными данными в форме с плавающей запятой.
Действия над числами в форме с плавающей запятой не требуют масштабирования данных. Это основное достоинство арифметики с плавающей запятой.
Рассмотрим ряд чисел, представленных в разных формах:
Число | Естественная форма | Нормальная форма | ||||
Целая часть | Дробная часть | Мантисса | Масштабный коэффициент | Для основания системы счисления =10 | ||
Значащие цифры мантиссы | Порядок | |||||
+ 350 | ,0 | + 0,35 | ´ 10+3 | + 35 | + 3 | |
-35 | – 35 | ,00 | – 0,35 | ´ 10+2 | – 35 | + 2 |
0,35 | + 0 | ,350 | + 0,35 | ´ 100 | + 35 | |
0,035 | + 0 | ,035 | + 0,35 | ´ 10–1 | + 35 | – 1 |
Здесь представлены четыре числа (три положительных и одно отрицательное) в естественной форме (левая колонка) и нормальной форме (центральная и правая колонки). Все числа имеют одинаковые последовательности значащих (отличных от нуля) цифр, но разные порядки (от сотен до сотых долей).
Естественная форма записи числа соответствует форме представления чисел с фиксированной запятой. Для такого представления важно место запятой. Для представления всех четырех чисел без масштабирования требуется шестиразрядный регистр (три разряда для целой части числа и три – для дробной).
Нормальная форма представляет эти числа в виде нормализованной дроби с "индивидуальным" масштабным коэффициентом.
Например: 350,0 = 0,35 ´ 103. В общем случае число А в нормальной форме записывается как: А = m ´ qn, где:
m мантисса - нормализованная дробь,
q основание системы счисления,
n порядок числа.
Нормальная форма представления соответствует форме представления чисел с плавающей запятой. Это полулогарифмическая форма представления чисел. Она предоставляет более широкий диапазон представления чисел при ограниченной разрядности регистров хранения.
Основание системы счисления (q) задается по умолчанию. Для большинства микропроцессоров q=2.
В случае задания основания системы счисления по умолчанию, число 350,0 может быть записано в виде пары чисел: 35 и 3. Первое число – это запись значащих чисел, второе число (порядок числа) можно интерпретировать, как координату запятой. В данном случае место запятой – после третьей позиции цифр числа. Отсюда вытекает и название формы представления чисел – с плавающей запятой.
Порядок числа может быть как положительным, так и отрицательным. Для чисел больших единицы – порядок положительный, для дробных чисел – отрицательный.
Для упрощения обработки чисел в форме с плавающей запятой используют "сдвинутый" порядок - характеристику. Характеристика – это порядок "сдвинутый" в область положительных значений. Для получения характеристики из порядка в старший разряд порядка прибавляют 1.
Например, пусть для записи порядка используются три двоичных разряда. С учетом знака в эти разряды можно записать числа в диапазоне от минус 4 до плюс 3:
Порядок | Порядок в дополнительном коде | Характеристика (сдвинутый порядок) |
–4(10) | 1,00(2) | 000(2) |
–3(10) | 1,01(2) | 001(2) |
–2(10) | 1,10(2) | 010(2) |
–1(10) | 1,11(2) | 011(2) |
0(10) | 0,00(2) | 100(2) |
+1(10) | 0,01(2) | 101(2) |
+2(10) | 0,10(2) | 110(2) |
+3(10) | 0,11(2) | 111(2) |
В дополнительном коде характеристика отличается от порядка тем, что у нее изменен знаковый разряд. Основное преимущество этой кодировки заключается в том, что в ней проще определять соотношение порядков обрабатываемых чисел.
Таким образом, для представления чисел в форме с плавающей запятой требуется регистр с тремя полями для записи знака числа (знака мантиссы), мантиссы и характеристики (порядка со знаком).
Как правило, в ЭВМ отрицательные значения чисел (мантиссы) задаются в прямом коде.
Мантисса – это нормализованная дробь.
По классическому определению, нормализованная дробь - это дробь, у которой первая цифра после запятой отлична от нуля, т.е., для нормализованной дроби должно выполняться условие: ÷mê<1
Для двоичной системы счисления нормализованная дробь имеет вид 0,1 а2 а3 и т.д., то есть |m|>1/2.
Первые ЭВМ использовали именно такие мантиссы. Но, при такой записи, целые числа представлялись с погрешностью. Например, число 1 представлялось в виде мантиссы: 0,111111111…11 с нулевым порядком.
.
При этом произведение 2´2 после переводов исходных чисел из десятичной системы счисления в двоичную и результата – обратно в десятичную ЭВМ выдавала в виде дробного числа: 3,99999.
В современных ЭВМ, например в РС Intel и PDP-11, мантиссу определяют как неправильную дробь, целая часть которой равна 1, т.е. 2>m ≥1.
В этом случае целые числа задаются без погрешностей. Но дело тут не столько в свойствах систем счисления, сколько в методах перевода чисел. Например, число 1 можно задавать без погрешности и при дробной мантиссе: 1 = 0,1(2) ´ 21
В зависимости от требуемой точности представления чисел в ЭВМ используется ряд форматов для хранения и обработки чисел форме с плавающей запятой.
Например, в МП Intel предусмотрены три формата: короткий формат (обычной точности), формат двойной точности и расширенный (вещественный) формат (real).
Два первых формата используются только для хранения данных в памяти. Перед вычислениями числа из этих форматов переводятся в вещественный формат.
Числа с плавающей запятой в формате обычной и двойной точности при загрузке в модуль обработки автоматически преобразуются в формат расширенной точности. Для исключения потери точности в длинных цепочках вычислений предусмотрена возможность хранения промежуточных результатов вычислений в памяти и в формате расширенной точности
Короткий формат: знак числа (мантиссы) – 1 бит, характеристика (сдвинутый порядок): – 1 байт и мантисса: – 3 байта. При хранении в памяти первую значащую цифру мантиссы (в старых ЭВМ – единицу после запятой или, в современных ЭВМ, – единицу до запятой) не записывают (задают по умолчанию). В результате этого, короткий формат чисел с плавающей запятой при хранении содержит 32 бита (4 байта).
Формат двойной точности: знак числа (мантиссы) – 1 бит, характеристика (сдвинутый порядок): – 11 бит и мантисса: – 53 бита (включая первую скрытую цифру). Всего, с учетом скрытой цифры мантиссы, – 64 бита (8 байт).
Расширенный (вещественный) формат: знак числа (мантиссы) – 1 бит, характеристика (сдвинутый порядок) – 15 бит, мантисса – 64 бит (8 байт), включая первую цифру мантиссы. Всего – 80 бит (10 байт).
Вопросы для самопроверки
1. Назовите две основные причины использования двоичной системы счисления в ЭВМ.
2. Назовите основной способ перевода целых чисел из одной системы счисления в другую.
3. Назовите основной способ перевода дробных чисел из одной системы счисления в другую.
4. В чем причина использования в машинной арифметике дополнительного и обратного кодов.
5. Определите асимметрию дополнительного кода.
6. Назовите особенности и причины использования модифицированного дополнительного кода.
7. Назовите особенности использования обратного кода (преимущества и недостатки).
8. Охарактеризуйте форму представления чисел с фиксированной запятой.
9. Назовите основные преимущества и недостатки использования формы представления чисел с фиксированной запятой для машинной обработки данных.
10. Охарактеризуйте форму представления чисел с плавающей запятой.
11. Назовите основные преимущества и недостатки использования формы представления чисел с плавающей запятой для машинной обработки данных.
12. Каковы параметры форматов данных с фиксированной запятой, которые Вам известны.
13. Каковы параметры форматов данных с плавающей запятой, которые Вам известны.
Дата добавления: 2022-02-05; просмотров: 555;