Фон
Формат IEEE 754 з подвійною точністю з плаваючою комою - це спосіб представити реальні числа з 64 бітами. Виглядає так:
![]()
Реальне число nперетворюється в a doubleтаким чином:
- Біт знака
sдорівнює 0, якщо число додатне, 1 в іншому випадку. - Абсолютне значення
nпредставлено у формі2**y * 1.xxx, тобто потужність у 2 рази від бази . - Показник
eєy(сила 2) мінус тисяча двадцять три. - Фракція
f- цеxxxчастина (дробова частина основи), що займає найбільш значущі 52 біти.
І навпаки, бітовий візерунок (визначений знаком s, експонентом eі дробом f, кожне ціле число) представляє число:
(s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52))
Виклик
З огляду на дійсне число n, виведіть його 52-бітну частку doubleподання nяк ціле число.
Випробування
0.0 => 0
1.2 => 900719925474099 (hex 3333333333333)
3.1 => 2476979795053773 (hex 8cccccccccccd)
3.5 => 3377699720527872 (hex c000000000000)
10.0 => 1125899906842624 (hex 4000000000000)
1234567.0 => 798825262350336 (hex 2d68700000000)
1e-256 => 2258570371166019 (hex 8062864ac6f43)
1e+256 => 1495187628212028 (hex 54fdd7f73bf3c)
-0.0 => 0
-1.2 => 900719925474099 (hex 3333333333333)
-3.1 => 2476979795053773 (hex 8cccccccccccd)
-3.5 => 3377699720527872 (hex c000000000000)
-10.0 => 1125899906842624 (hex 4000000000000)
-1234567.0 => 798825262350336 (hex 2d68700000000)
-1e-256 => 2258570371166019 (hex 8062864ac6f43)
-1e+256 => 1495187628212028 (hex 54fdd7f73bf3c)
Ви можете перевірити інші номери за допомогою цього довідника C, який використовує бітові поля та об'єднання.
Зауважте, що очікувана відповідь однакова +nі -nдля будь-якого числа n.
Вхід і вихід
Діють стандартні правила.
Прийнятий формат введення:
- Число з плаваючою комою, принаймні має
doubleвнутрішню точність - Рядкове представлення числа в десятковій частині (вам не потрібно підтримувати наукові позначення, оскільки ви можете використовувати
1000...00або0.0000...01як введення)
Для виводу допускається помилка округлення принаймні значущому біті.
Умова виграшу
Це код-гольф , тому найнижчі байти в кожній мові виграють.