Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Хранение в ЭВМ дробных чисел

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

N = M ´ (2 k)10 = M ´ (10 k)2,

где M – мантисса числа; 2 k – характеристика; k – порядок числа (целое число).

Мантисса числа является правильной дробью (| M | < 1). Мантисса содержит цифры числа, а с помощью порядка указывается положение разделительной точки.

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

1011.012 = 0.01011012 ´ (25)10.

Если в разряде с номером –1 мантиссы располагается единица (|M| = 0.1...), то число N имеет нормализованное представление.

Например, двоичное число 1011.012 имеет нормализованное представление:

1011.012 = 0.1011012 ´ (24)10.

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

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

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

- знак числа (мантиссы);

- значение порядка;

- значение мантиссы.

Рассмотрим хранение дробного числа в коротком формате (рис. 6.1).

 

Зн Порядок Мантисса
  Первый байт   Второй байт Третий байт Четвертый байт
                                                               
b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b

 

Рис. 6.1

Знак числа (на рисунке он обозначен символом «Зн») представлен одним битом и равен 0, если число неотрицательное (положительное или 0), и равен 1, если число отрицательное.

Для хранения порядка выделяется 8 битов (7 битов первого байта и один старший бит второго байта числа). Порядок хранится в виде смещенного порядка. Для получения смещенного порядка необходимо воспользоваться выражением:

s = k + d,

где s – значение смещенного порядка, k – значение абсолютного порядка, d – смещение порядка (для короткого формата смещение порядка равно 127). Смещенный порядок хранится в формате целого двоичного числа с фиксированной точкой без знака. С помощью восьми битов можно представлять смещенный порядок от 0 до 255. Это означает, что значением абсолютного порядка нормализованного двоичного числа с плавающей точкой являются целые числа от -127 до 128. Использование смещенного порядка упрощает операции сравнения, сложения и вычитания над порядками, так как операции необходимо выполнять с неотрицательными числами.

Мантисса представляется в двоичной системе счисления и занимает 23 двоичных разряда (короткий формат). Старший разряд мантиссы (разряд с номером –1) не хранится, так как его значение у нормализованного числа всегда равно 1.

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

Нормализованное число двойной точности представляет собой 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 52-разрядной мантиссой (старший разряд мантиссы не хранится).

Для хранения чисел с плавающей точкой может использоваться также и расширенный формат, позволяющий хранить ненормализованные числа в виде 80-разрядного числа со знаком, 15-разрядным смещенным порядком и 64-разрядной мантиссой.

Процедура получения представления дробного числа в коротком формате, заданного в десятичной системе счисления, следующая:

1. Перевод исходного десятичного числа в двоичную систему счисления. При переводе необходимо определить точность перевода. Рассмотрим два случая.

1.1. Абсолютная величина исходного числа не меньше единицы. В этом случае точность перевода m определяется из равенства:

m + n + 1=25; m = 24 – n, (6.3)

где m – точность перевода, количество разрядов дробной части искомого числа; n + 1 – количество разрядов целой части искомого двоичного числа (n – номер старшего разряда). Для того чтобы определить точность перевода m, необходимо перевести целую часть исходного числа в двоичную систему счисления, определить номер старшего разряда n полученного двоичного числа и затем воспользоваться выражением (6.3) для определения точности перевода.

1.2. Значение десятичного исходного числа по абсолютной величине, не меньшей единицы. Для определения точности перевода в этом случае необходимо подсчитать количество нулей l, которые располагаются в дробной части искомого двоичного числа, расположенных между разделительной точкой и первым разрядом, равным единице. Эту единицу можно отыскать, просматривая искомое число от разделительной точки вправо (например, для числа 0.000011012 l = 4). Тогда точность перевода m будет определяться выражением:

m = l + 25.

2. Округление числа. Для того чтобы округлить число, необходимо к полученному двоичному числу прибавить единицу, по весу равную единице младшего разряда (2- m, где – m – номер младшего разряда двоичного числа). После выполнения сложения разряд с номером – m отбрасывается.

3. Нормализация числа. В результате нормализации числа необходимо получить мантиссу, которая будет располагаться на полусегменте от 0.5 до 1 – x: [0.5;1), т.е. x ≥ 0.5, но x < 1. Это достигается перемещением разделительной точки. Изменение значения числа компенсируется изменением порядка.

Примем значение порядка равным нулю и рассмотрим два случая.

3.1. Если значение числа не меньше 1, то разделительная точка перемещается влево.

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

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

В результате будет получено число. Целая часть числа равна нулю, а старший разряд мантиссы равен единице. Единицу старшего разряда мантиссы можно не хранить, ее всегда можно восстановить. Оставшаяся дробная часть мантиссы будет содержать 23 двоичного разряда. В результате нормализации будет также получен абсолютный порядок числа.

4. Нахождение смещенного порядка. Для нахождения смещенного порядка необходимо к найденному абсолютному порядку прибавить число 127, затем полученный смещенный порядок необходимо перевести в двоичную систему счисления и дополнить полученное двоичное число незначащими нулями до разрядности 8. Максимальное значение смещенного порядка равно 255. Минимальное значение смещенного порядка равно 0. Смещенный порядок – неотрицательное число и хранится в формате восьмиразрядного целого двоичного числа с фиксированной точкой без знака. Абсолютный порядок может принимать значение от -127 до +128.

5. Размещение нормализованного двоичного числа с плавающей точкой в памяти.

Пример 6.6. Представим в коротком формате десятичное число 10.6.

1. Перевод исходного десятичного числа 10.610 в двоичную систему счисления:

10.610= 1010.(1001)2 =1010.1001100110011001100112.

2. Округление числа:

1010.1001100110011001100112

+ 0.000000000000000000001 2

1010.1001100110011001101002.

3. Нормализация числа:

1010.100110011001100110102= 0.1010100110011001100110102´2410.

4. Нахождение смещенного порядка:

410 + 12610 = 13010 = 100000102.

5. Размещение нормализованного двоичного числа с плавающей точкой в памяти(рис. 6.2, шестнадцатеричное представление числа 4129999 а в памяти).

 

Зн Порядок Мантисса
  Первый байт   Второй байт Третий байт Четвертый байт
                                                               
                                                               
              а

 

Рис. 6.2

 

<== предыдущая лекция | следующая лекция ==>
Представление дробных чисел | Кодирование символьной информации. И графической информации
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 740; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.026 сек.