- •Что делать
- •Просто о “длинных” числах
- •Массивы в Си
- •Ввод длинного числа с клавиатуры
- •Как это будет на Си?
- •Сложение двух чисел
- •Задачи на длинную арифметику
- •Умножение длинного числа на длинное
- •Несколько слов о реализации
- •Заключение
- •Задачи для самостоятельного решения
- •Список использованной литературы
- •Проверочная работа
- •1 Вариант
- •2 Вариант
- •Представление вещественных чисел
- •Нормальная и нормализованная форма
- •Типы чисел с плавающей точкой (по ieee 754) Число половинной точности (Binary16, Half precision)
- •Число одинарной точности (Binary32, Single precision, float)
- •Число двойной точности (Binary64, Double precision, double)
- •Число четверной точности (Binary128, Quadruple precision)
- •Диапазон значений чисел с плавающей запятой
- •Особые значения чисел с плавающей точкой Ноль (со знаком)
- •Неопределенность (NaN)
- •Бесконечности
- •Денормализованные числа
- •Действия с числами с плавающей запятой Умножение и деление
- •Сложение и вычитание
- •Алгоритм получения представления вещественного числа в памяти эвм
- •Ссылки Использованные материалы
- •Что стоит прочесть
Представление вещественных чисел
http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B5%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB
Вещественные числа обычно представляются в виде чисел с плавающей запятой. Числа с плавающей запятой — один из возможных способов представления действительных чисел, который является компромиссом между точностью и диапазоном принимаемых значений, его можно считать аналогом экспоненциальной записи чисел, но только в памяти компьютера.
Число с плавающей запятой состоит из набора отдельных двоичных разрядов, условно разделенных на так называемые знак,порядок и мантиссу. В наиболее распространённом формате (стандарт IEEE 754) число с плавающей запятой представляется в виде набора битов, часть из которых кодирует собой мантиссу числа, другая часть — показатель степени, и ещё один бит используется для указания знака числа (0 - если число положительное, 1 - если число отрицательное). При этом порядок записывается как целое число в коде со сдвигом, а мантисса - в нормализованном виде, своей дробной частью в двоичной системе счисления. Вот пример такого числа из 16 двоичных разрядов:
Знак |
|
|
|
|
|
|
|
|
|
|
|
||||
|
Порядок |
Мантисса |
|||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
14 |
10 |
9 |
0 |
|||||||||||
Знак - один бит, указывающий знак всего числа с плавающей точкой. Порядок и мантисса — целые числа, которые вместе со знаком дают представление числа с плавающей запятой в следующем виде:
,
где s — знак, B-основание, E — порядок, а
M — мантисса.
Порядок также иногда называют экспонентой или просто показателем степени.
При этом лишь некоторые из вещественных чисел могут быть представлены в памяти компьютера точным значением, в то время как остальные числа представляются приближёнными значениями.
Нормальная и нормализованная форма
Нормальной
формой числа
с плавающей запятой называется такая
форма, в которой мантисса (без учёта
знака) в десятичной системе находится
на полуинтервале [0; 1). Такая форма записи
имеет недостаток: некоторые числа
записываются неоднозначно (например,
0,0001 можно записать в 4 формах — 0,0001×100,
0,001×10−1,
0,01×10−2,
0,1×10−3),
поэтому распространена также другая
форма записи — нормализованная,
в которой мантисса десятичного числа
принимает значения от 1 (включительно)
до 10 (не включительно), а мантисса
двоичного числа принимает значения от
1 (включительно) до 2 (не включительно).
То есть в мантиссе слева от запятой до
применения порядка находится ровно
один знак. В такой форме любое число
(кроме 0) записывается единственным
образом. Ноль же представить таким
образом невозможно, поэтому стандарт
предусматривает специальную
последовательность битов для задания
числа 0 (а заодно и некоторых других полезных
чисел,
таких как
и
).
Так как старший двоичный разряд (целая
часть) мантиссы вещественного числа в
нормализованном виде всегда равен «1»,
то его можно не записывать, сэкономив
таким образом один бит, что и используется
в стандарте IEEE 754. В позиционных системах
счисления с основанием большим, чем 2
(в троичной, четверичной и др.), этого
замечательного свойства нет (ведь целая
часть там может быть не только единицей).
Знак |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
Порядок |
Мантисса |
||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
1, |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
||||||||||
|
14 |
10 |
|
9 |
0 |
|||||||||||||||||||||
