Информатика. Курс лекций. Громов Ю.Ю - 16 стр.

UptoLike

1.4. ПРЕДСТАВЛЕНИЕ ДРОБНЫХ ЧИСЕЛ*
В отличие от хранения целых чисел, для чисел с дробной частью требуется хранить не только двоичное представление
числа и его знак, но и позицию разделительной точки. Общепринятым способом хранения дробей является представление с
плавающей точкой.
Двоичная нотация с плавающей точкой. Для представления дробных значений используют способ, который называ-
ется двоичной нотацией с плавающей точкой (floating-point notation). На рис. 1.15 представлены компоненты дробного чис-
ла, состоящего из 8 бит и записанного в двоичной нотации с плавающей точкой (несмотря на то, что в машинах обычно ис-
пользуются более длинные битовые комбинации, восьмиразрядный формат достаточно наглядно демонстрирует используе-
мые принципы без ненужной избыточности длинных битовых комбинаций).
Пример. Представить битовую комбинацию 01101011, записанную в двоичной нотации с плавающей точкой в деся-
тичном формате.
Знаковый бит этого числа равен 0, поле порядка числа имеет значение 110, а поле мантиссызначение 1011. Вначале
выделим мантиссу и поместим плавающую точку слева от нее, как показано ниже:
.1011
Далее выделим значение в поле порядка числа (110) и интерпретируем его как целое трехразрядное число, записанное в
двоичной нотации с избытком. Таким образом, в поле порядка числа закодировано целое число 2. Это означает, что плаваю-
щую точку в полученном ранее значении следует переместить на два бита вправо (при отрицательном порядке плавающая
точка перемещается влево), после чего будет получен окончательный результат:
10.11
Это значение является двоичным представлением числа 2
3
/
4
. Наконец, определяем, что представляемое число является
положительным, поскольку знаковый бит имеет значение 0.
Таким образом, мы установили, что битовая комбинация 01101011 в двоичной нотации с плавающей точкой представ-
ляет число 2
3
/
4
.
Рис. 1.15. Компоненты числа в двоичной нотации с плавающей точкой
Пример. Представить битовую комбинацию 10111100, записанную в двоичной нотации с плавающей точкой в деся-
тичном формате.
Выделив мантиссу, получим следующее значение:
.1100
Теперь перенесем плавающую точку на один бит влево, так как в поле порядка содержится значение 011, представляю-
щее число –1. Поэтому окончательный вид закодированного двоичного числа будет следующим:
0.01100
Это двоичное число имеет значение
3
/
8
. Закодированное в значении байта число является отрицательным, поскольку его
знаковый бит равен 1. Из этого следует, что битовая комбинация 10111100 в двоичной нотации с плавающей точкой пред-
ставляет число
3
/
8
.
Для представления чисел в двоичной нотации с плавающей точкой необходимо следовать описанному выше процессу,
но уже в обратном порядке.
Пример. Представить в двоичной нотации с плавающей точкой число 1
1
/
8
.
Сначала число 1
1
/
8
необходимо записать в его двоичном представлении: 1.001. Затем эта битовая комбинация копирует-
ся в поле мантиссы слева направо, начиная с самой левой единицы в двоичном представлении числа:
_ _ _ _ 1
0 0 1
Определим число разрядов, а также направление, в котором будет перемещаться плавающая точка для получения ис-
ходного значения двоичного числа. Здесь можно увидеть, что точка в комбинации .1001 должна быть перемещена на один
бит вправо; в результате будет получено исходное значение 1.001. Таким образом, порядок числа равен 1 или 101 в двоичной
нотации с избытком четыре. Окончательное значение в байте будет выглядеть следующим образом:
0 1 0 1 1 0 0 1
При заполнении поля мантиссы имеется один тонкий момент: правило требует копировать битовую комбинацию дво-
ичного представления числа в поле мантиссы слева направо, начиная с крайней левой единицы. Данное правило исключает
возможность различного представления одного и того же значения, и, кроме того (что является, пожалуй, самым важным),
если "плавающая" точка расположена в мантиссе перед первой значащей цифрой (т.е. если используется нормализованная
запись числасм. Приложение А), то при фиксированном количестве разрядов, отведенных под мантиссу, обеспечивается
запись максимального количества значащих цифр числа, т.е. максимальная точность представления числа в машине.
Пример. Представить в двоичной нотации с плавающей точкой число
3
/
8
. Двоичным представлением числа
3
/
8
является
битовая комбинация .011. В этом случае мантисса должна иметь следующее значение:
_ _ _ _ 1
1 0 0
Любой другой вариант, например представленный ниже, недопустим:
_ _ _ _ 0
1 1 0
Позиции разрядов
Знаковый бит
Порядок
Мантисса