ВУЗ:
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
Позиции разрядов
Знаковый бит
Порядок
Мантисса
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »