/ / Як працює перетворення float у подвійне? - c, плаваюча точка, подвійна, тобто-754, одноточна

Як перетворювати плавач на подвійну роботу? - c, плаваюча точка, подвійна, IEEE-754, одноточність

double може представляти кожне значення, яке може представляти поплавок.

Чи перетворює поплавок у подвійне просто подовжує мантісу, додавши 0, і розширює експонентну частину, заповнюючи знакові біти?

Я перевірив деякі дані на http://www.binaryconvert.com/index.html. Це працює таким чином. Але я не знайшов жодного офіційного визначення конверсії. Чи не має жодної кутової конверсії таким чином працювати?

Відповіді:

6 за відповідь № 1

Це дуже мало стосується C; єдина його гарантія - це перетворення з float до double повинен зберігати значення.

Отже, ви насправді запитуєте про (імовірно) IEEE-754. Існує хоча б кілька способів, за якими ваш опис не відповідає:

  1. Показники одноточної та подвійної точності мають різні ухили. Таким чином, конверсія вимагає більше, ніж просто розширення знаків.

  2. Денормальні числа вимагають спеціального поводження (вони стають нормальними числами).

  3. NaN можуть також вимагати спеціального поводження - розрізнення сигналізації та тихого NaN залежить від значення мантіси.