double може представляти кожне значення, яке може представляти поплавок.
Чи перетворює поплавок у подвійне просто подовжує мантісу, додавши 0, і розширює експонентну частину, заповнюючи знакові біти?
Я перевірив деякі дані на http://www.binaryconvert.com/index.html. Це працює таким чином. Але я не знайшов жодного офіційного визначення конверсії. Чи не має жодної кутової конверсії таким чином працювати?
Відповіді:
6 за відповідь № 1Це дуже мало стосується C; єдина його гарантія - це перетворення з float
до double
повинен зберігати значення.
Отже, ви насправді запитуєте про (імовірно) IEEE-754. Існує хоча б кілька способів, за якими ваш опис не відповідає:
Показники одноточної та подвійної точності мають різні ухили. Таким чином, конверсія вимагає більше, ніж просто розширення знаків.
Денормальні числа вимагають спеціального поводження (вони стають нормальними числами).
NaN можуть також вимагати спеціального поводження - розрізнення сигналізації та тихого NaN залежить від значення мантіси.