Если хранилище чисел с плавающей запятой в определенной системе имеет знаковый бит, 3-битную экспоненту и 4-битное значениеи: - PullRequest
2 голосов
/ 26 января 2020

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

.1111 x 2^4 = 0 100 1111 = 15

, а наименьшее:

1.0 x 2^-4 = 0 000 0001 = 0.0625

Но ответы, которые я видел, были:

Largest: .1111 x 2^3 = 111.1 = 7.5

Smallest: 0.1 x 2^-4 = .00001 = 0.03125

Я делаю не понимаю, каким образом любой ответ был бы возможен даже в 4-битном значении.

1 Ответ

2 голосов
/ 26 января 2020

Здесь есть несколько вещей, которые нужно расшифровать.

  • Экспонента: 3 бита, дополнение 2, без смещения. Это означает, что показатель степени может представлять значения в диапазоне от -4 (соответствует 100) до 3 (соответствует 011).

  • Нормализовано без подразумеваемого бита: Это означает значение и всегда начинается с 1.

Когда вы сложите их вместе, максимальное число, которое вы можете написать:

 0 011 1111 = 2^3 * (2^-1 + 2^-2 + 2^-3 + 2^-4) = 7.5

Поскольку значения с плавающей запятой symmeti c вокруг 0, минимальное значение, которое вы можете записать, составляет -7.5, щелкнув знак выше. Но я предполагаю, что ваш учитель имеет минимально строго положительное (т. Е. Ненулевое) значение. В этом случае мы выбираем показатель степени как можно меньшим и просто сохраняем первый бит значения и удовлетворяем нормализованному требованию. Мы получаем:

 0 100 1000 = 2^-4 * 2^-1 = 2^-5 = 0.03125

Надеюсь, что имеет смысл!

...