Пределы с плавающей точкой - PullRequest
6 голосов
/ 26 июня 2011

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

  1. Какое наименьшее и наибольшее число может быть представлено в нормализованной нотации с плавающей запятой, дополняемой 2s, с 10-битной мантиссой и 6-битной экспонентой?

  2. Какие два ближайших значения к 0 возможны с указанными выше мантиссой и показателем степени.Подумайте, где происходит переполнение и переполнение.

Ответы [ 3 ]

2 голосов
/ 26 июня 2011

(Я бы добавил это как комментарий, но в какой-то момент я потерял способность комментировать. Возможно, в какой-то момент репутация ухудшилась.)

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

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

Задайте себе вопрос: Какая комбинация знака, экспоненты и мантиссы создаст самые большие / самые маленькие числа?Если вы знаете, как преобразование из двоичного в десятичное, я думаю, вы должны быть в состоянии легко решить эту проблему.Если вы не знаете, тогда я предлагаю вам начать там и продолжить свой путь.

1 голос
/ 26 июня 2011

Если вы говорите о варианте IEE754, вы можете изучить Википедию IEEE754-1985 и самостоятельно выполнить вычисления для полностью нормализованного числа, учитывая различные размеры для дроби и показателя степени.

Пока что забудьте о знаке, это просто переворот.

Самая большая доля - это все однобитные, которые для десятибитовой мантиссы:

      1   1   1    1    1    1    1     1     1      1
  1 + - + - + - + -- + -- + -- + --- + --- + --- + ----
      2   4   8   16   32   64   128   256   512   1024

= 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
  -----------------------------------------------------
                           1024

(неявное 1 плюс десять битов когда-либо пополам дробных).Это 2047/1024.

Что касается показателя степени, то наибольшее неспецифическое значение (специальные значения, такие как NaN или ±Inf) для 6-разрядного показателя равно 2 6 .-2 или 62 (диапазон от 0 до 62).

Но, поскольку вам нужны положительные и отрицательные показатели, вы вычитаете 31 (смещение, половина максимального не специального значения).Это дает вам диапазон от -30 до 31 (-31 здесь можно сбрасывать со счетов, поскольку он не нормализован).

Таким образом, самые большие и самые маленькие (самые отрицательные) значения равны ±(2047/1024)x2<sup>31</sup> или ±4292870144.

Аналогично, два ближайших к нулю значения имеют поле экспоненты -30 (нормализованный минимум) и поле мантиссы всех нулей, которое при неявном 1 дает вам 1.

Эти значения ±(1)x2<sup>-30</sup> или ±0.000000000931322574615478515625.

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

ВЧтобы поставить этот ответ в свои слова (и, следовательно, , а не быть пойманным на плагиат), вам придется понять это.

1 голос
/ 26 июня 2011

Возможно, вам стоит взглянуть на эти страницы: 1 , 2 , 3 , 4 , 5 , 6 , 7

Надеюсь, это поможет, не давая просто ответов напрямую. :)

Btw. Вы пытались сделать вычисления вручную?

...