Еквивалентност между два подхода към простата точност на IEEE 754

От известно време изучавам IEEE 754 и има нещо, което не успявам да разбера. Според моите бележки, в простата точност на IEEE имате 1 бит за знака, 8 за експонента и 23 за мантиса, което прави общо 32 бита. Експонентата може да се опише по следния начин: първият бит дава знака, а останалите 7 бита описват някакво число, което означава, че най-голямата възможна стойност за експонента е 2^+127, а най-малката 2^-127. Но според Wikipedia (и други уебсайтове) най-ниската възможна стойност е -126, която получавате, ако приемете експонентата като число, определено от: e-127 и e е цяло число между 1 и 254. Защо e не може да приеме стойността 0, което ще активира степента -127?


person Yacine Aoun    schedule 10.01.2017    source източник
comment
2^+127. Мисля, че имахте предвид 2^7 - 1 = 127. Няма да редактирам това във въпроса, в случай че направихте предвид това, което сте въвели, в който случай трябва да обсъдим защо е неправилно.   -  person    schedule 10.01.2017
comment
Имах предвид 2^+127, неправилно ли е??   -  person Yacine Aoun    schedule 10.01.2017


Отговори (1)


Потърсете „ненормални“ или денормализирани числа; те имат отклонена стойност на експонента от 0.

Денормалното число е представено с отклонена експонента от всичките 0 бита, което представлява експонента от −126 с единична точност (не −127).

Освен това в мантисата има 24 логически бита, но първият винаги е 1, така че всъщност не се съхранява.

Нулите със знак са представени чрез експонента и мантиса с всички битове нула, а битът за знак може да бъде 0 (положителен) или 1 (отрицателен).

person Jonathan Leffler    schedule 10.01.2017