числа с плавающей запятой - ближайшее число к 1,7 - PullRequest
5 голосов
/ 03 мая 2011

Я готовлюсь к некоторым экзаменам, и один из вопросов, заданных в прошлом, заключается в том, чтобы найти наиболее близкое к 1.7 число, учитывая мнимый формат с плавающей запятой, который имеет в общей сложности 8 битов (1 для знака, 3 для показателя степени, 4 для значения).

В любом случае, я записал 1.1011, так как я могу играть с четырьмя значащими и цифрами, а 1 подразумевается стандартом IEEE. Однако установка показателя степени в 000 сделает его денормализованным числом. Означает ли это, что значение 1.7 будет равно 1.1100 с плавающей запятой?

ТНХ

Ответы [ 2 ]

3 голосов
/ 04 мая 2011

Ответивший отправил ответ, который был удален модератором.Я отметил это для внимания, но я также добавлю несколько заметок здесь.

Ключ в том, что форматы с плавающей точкой в ​​стиле IEEE-754 хранят показатель степени в «смещенной» (также называемой"избыток-n") целочисленный формат.С 3-мя битами экспоненты смещение равно 3, поэтому набор кодируемых экспонент равен:

encoding    meaning
  000       exponent for zeros and denormals
  001       2^-2
  010       2^-1
  011       2^0
  100       2^1
  101       2^2
  110       2^3
  111       exponent for infinities and NaNs

Таким образом, значение опрашивающего 1.7 будет иметь поле экспоненты 3 (b011) и поле значимостиb1011, как он заявил, что составляет полное значение b00111011.

2 голосов
/ 03 мая 2011

О, я полностью забыл о смещении экспоненты, если кому-то интересно, у числа с плавающей запятой смещение 3 равно 3, так что при значении 3 я получу 2 ^ 0

...