Фон
IEEE 754 Формат с плавающей запятой двойной точности представляет собой способ представления действительных чисел с помощью 64-разрядных. Это выглядит следующим образом:
![]()
Действительное число nпреобразуется в a doubleследующим образом:
- Знаковый бит
sравен 0, если число положительное, и 1 в противном случае. - Абсолютное значение
nпредставляется в виде2**y * 1.xxx, то есть степень -2, умноженная на основание . - Показатель
eявляетсяy(сила 2) минус 1023. - Фракция
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качестве ввода)
Для вывода допустима ошибка округления младшего бита.
Условие победы
Это код-гольф , поэтому побеждают младшие байты на каждом языке.