От известно време изучавам IEEE 754 и има нещо, което не успявам да разбера. Според моите бележки, в простата точност на IEEE имате 1 бит за знака, 8 за експонента и 23 за мантиса, което прави общо 32 бита. Експонентата може да се опише по следния начин: първият бит дава знака, а останалите 7 бита описват някакво число, което означава, че най-голямата възможна стойност за експонента е 2^+127, а най-малката 2^-127. Но според Wikipedia (и други уебсайтове) най-ниската възможна стойност е -126, която получавате, ако приемете експонентата като число, определено от: e-127
и e
е цяло число между 1 и 254. Защо e
не може да приеме стойността 0, което ще активира степента -127?
Еквивалентност между два подхода към простата точност на IEEE 754
Отговори (1)
Потърсете „ненормални“ или денормализирани числа; те имат отклонена стойност на експонента от 0.
Денормалното число е представено с отклонена експонента от всичките 0 бита, което представлява експонента от −126 с единична точност (не −127).
Освен това в мантисата има 24 логически бита, но първият винаги е 1, така че всъщност не се съхранява.
Нулите със знак са представени чрез експонента и мантиса с всички битове нула, а битът за знак може да бъде 0 (положителен) или 1 (отрицателен).
person
Jonathan Leffler
schedule
10.01.2017
2^+127
. Мисля, че имахте предвид2^7 - 1 = 127
. Няма да редактирам това във въпроса, в случай че направихте предвид това, което сте въвели, в който случай трябва да обсъдим защо е неправилно. - person   schedule 10.01.2017