Почему последний бинарный бинарный дол 0,1F округляется до 1?

Я следую за курсом операционной системы в колледже, и мы недавно узнали, как номера плавающих точек представлены в памяти.

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

E.G. 200 0234375 даст 010000110100100000000100001000000000011000000000 г. после процесса длительного преобразования.

Одним из вопросов состоит в том, как 0.1F будет представлен в памяти. Поэтому я сделал весь процесс преобразования, и я закончил с этим:

001111011100110011001100110011001100110011001100

с тем, что мы узнали до сих пор, это правильный ответ на вопрос (я спросил учителя).

Но на следующем вопросе нас просят проверить ответ с программой, чтобы увидеть фактическое двоичное представление 0,1F. Реальное представление это:

001111011100110011001100110011001100110011001101

(обратите внимание на последний бит)

Мы тогда просят попытаться догадаться, почему это происходит.

Я заметил периодическое 0011 при преобразовании числа и, поскольку следующий бит после окончательного 0 был бы 1 , я бы предположил, что компьютер Окружал бы этот финал 0 к 1 , что объяснило бы разницу.

Итак, что я хочу знать, есть ли я правильно? - это закругление компьютера последнего бита на основе того, что будет следующим битом, когда используются 23 бита Mantissa?

Это домашнее задание, поэтому, если вы могли бы просто направить меня к ответу, если я Неправильно, я был бы признателен.

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

5
задан Bill the Lizard 15 December 2012 в 16:32
поделиться