2013-09-09 4 views
3

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

  1. Формат A:
    Существует один знаковый бит.
    Есть k = 3 экспоненциальных битов.
    Существует n = 4 бит бит.

  2. Формат B:
    Существует один знаковый бит.
    Есть k = 4 бита экспоненты.
    Существует n = 3 бит бит.

Ниже приведены некоторые битовые шаблоны образов А. Ваша задача выяснить значения чисел, данных форматом А, а также конвертировать их в ближайшее значение в формате В.

Format A      Format B 
    Bits    Value   Bits 
    1 010 1000 
    1 110 0000 
    0 101 1010 
    0 000 1001 

Это домашнее задание ... Я не хочу, чтобы задание было выполнено для меня. Я просто хочу узнать, как конвертировать. С плавающей точкой меня очень смущает.

Может кто-то просто придумать «Формат А» и показать мне, как получить значение/преобразовать шаг за шагом?

+0

Интересный вопрос. Есть один [подробно отсутствует] (http://en.wikipedia.org/wiki/IEEE_floating_point) - обычно экспоненты представлены как «избыток-NN», где NN является степенью двух, так что значения экспоненты могут представлять дробные значения, а также интегральные значения.Для 3-битного экспонента функция execess-4 может работать; для 4-битного экспонента избыток-8 тоже может работать. Можете ли вы проверить, была ли эта информация предоставлена. (Или снова, возможно, это просто «избыток 2 ** (N-1)», где N - количество бит в экспоненте.) –

+0

Формат должен основываться на IEEE 754. Используемый образец экспоненты согласованный для форматов, которые он определяет, с _bias_, равным _emax_, который является '2 ** (kp-1) -1', где _k_ - количество бит, а _p_ - количество прецизионных бит, что больше числа бит хранимых бит. То есть 'k-p-1' является N-1, где N - количество бит экспоненты. Для трех битов экспоненты, которые предлагают _bias_ и _emax_ как 3. –

ответ

4

Вопрос не содержит многих деталей, которые важны для определения формата с плавающей запятой. Я попытаюсь ответить на первую часть вопроса, заполнив недостающую информацию, предположив, что все неуказанное соответствует общим правилам бинарных обменных форматов в стандарте IEEE Std 754-2008 IEEE для арифметики с плавающей точкой.

Данные параметры для формата А, с точки зрения таблицы 3.3 в стандарте, являются к = 8 и P = 5 (буквы курсивом параметры в стандарте, не вопрос).

Из этого, а формула в стандарте, смещения = Emax = 2 ** (к - р - 1) - 1 = 3.

Принимая пример биты 0 001 0011

Дробь в двоичном формате 0011/10000, десятичная цифра 3/16 = 0,1875. Биты экспоненты не равны нулю, поэтому это нормальное значение с не сохраненным ведущим одним битом, поэтому значение равно 1.1875.

Показатель в двоичном формате 001-011, десятичный 1-3 = -2.

Умножьте signficand на 2 ** (- 2) = 1/4, давая абсолютное значение 0.296875. Поскольку знаковый бит равен нулю, абсолютное значение является конечным значением.

+0

@BrettHale Вы правы. Конечное значение должно быть 1,1875/4 = 0,2996875. Похоже, что я использовал промежуточное значение перед добавлением 1 до десятичной точки. Я отредактирую, чтобы исправить это. Благодарю. –

Смежные вопросы