2012-05-28 3 views
2

У меня трудно понять, IEEE 754 Округление конвенций:IEEE 754 Округление к положительной бесконечности

  • Круглый к положительной бесконечности
  • округление до минус бесконечности
  • объективном до ближайшего четного

Если у меня есть двоичное число, состоящее из 9 бит справа от двоичной точки, и мне нужно использовать три самых разных бита для определения округления, что бы я сделал?

Это домашнее задание, поэтому я смутно задаю вопрос ... Мне нужна помощь в концепции.

Спасибо!

+0

Это не ясно; пожалуйста, вы можете добавить конкретный пример к вашему вопросу. –

+0

есть. +0.100101110 Мне нужно округлить это до положительной бесконечности, используя самые правые 3 бита. – melMPLS

ответ

5

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

Завершает значение +0.100101110 до шести мест после двоичной точки приведут к

+0.100110 // for round towards positive infinity 
+0.100101 // for round towards negative infinity 
+0.100110 // for round to nearest, ties to even 

Значения расщепляется

+0.100101 110 

в биты должны храниться и биты определения результата из округления.

Поскольку значение положительное, а определяющие биты не все равны 0, округление до положительной бесконечности означает приращение сохраненной части на 1 ULP.

Поскольку значение положительное, округление до отрицательной бесконечности просто отбрасывает последние бит.

Поскольку первый отсечной бит равен 1, и не все дополнительные биты равны 0, то значение +0.100110 ближе к оригиналу, чем +0.100101, так что результат +0.100110.

Более поучительный для ближайшего/четного случая был бы пример или два, где у нас действительно есть галстук, например. круглый +0.1001 до трех бит после двоичной точки:

+0.100 1 // halfway between +0.100 and +0.101 

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

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