плавающие точки: основанное на IEEE, но нестандартное преобразование битовых значений в двоичный формат

#architecture #computer-science

#архитектура #информатика

Вопрос:

Итак, вот что у нас есть, пользовательская настройка на основе IEEE:

Рассмотрим пятиразрядное представление с плавающей запятой на основе формата IEEE с плавающей запятой с 1 знаковым битом, двумя битами экспоненты и 2 значащими битами.

И выбор битов, которые необходимо преобразовать в двоичный код (включая ответы):

0 00 00 = 0

0 00 01 = 0.01

0 00 10 = 0.10

0 00 11 = 0.11

0 01 00 = 1.00

0 01 01 = 1.01

0 01 10 = 1.10

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

2^ (2-1) -1 = 1 (смещение)

для второго это будет означать 0 -1 (поскольку поле экспоненты равно нулю), так что 0.1 * 10-1 = .01. единственная проблема в том, что мы, похоже, не добавляем неявную ведущую 1. почему бы и нет? и все же кажется, что для значений с положительным показателем (см. 5 и ниже) мы действительно добавляем ведущий показатель. немного озадачен тем, чего мне не хватает.

большое спасибо!

Комментарии:

1. Итак, о чем вы спрашиваете? Учитывая все 32 возможности, какие числа с плавающей запятой они представляют?

2. я просто пытаюсь выяснить, как были вычислены эти двоичные дроби, кажется, я не могу вернуться к вычислениям должным образом. интересно, не упускаю ли я чего-нибудь

3. Значит, эти значения такие, какими они должны быть?

4. да. двоичные дроби справа от = являются правильными ответами

Ответ №1:

Чего вам не хватает, так это того, что в форматах IEEE-754 значения, которые имеют нулевой показатель, но ненулевое значащее поле, называемые денормалами, не имеют неявного начального бита.

Например, в IEEE single precision наименьшее положительное нормальное число равно:

 0x00800000 = 0x1.0 * 2**-126
  

следующее меньшее число является наибольшим денормальным:

 0x007fffff = 0x0.fffffe * 2**-126
  

наименьшее положительное число является наименьшим денормальным:

 0x00000001 = 0x0.000002 * 2**-126
  

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

Ответ №2:

Вероятно, вы заменили показатель степени и столбец мантиссы. Может быть, потому, что это выглядело так уместно.