sfondo
IEEE 754 Il formato a virgola mobile a precisione doppia è un modo per rappresentare numeri reali con 64 bit. È simile al seguente:
![]()
Un numero reale nviene convertito in a doublenel modo seguente:
- Il bit di segno
sè 0 se il numero è positivo, 1 altrimenti. - Il valore assoluto di
nè rappresentato nella forma2**y * 1.xxx, ovvero una potenza di 2 volte una base . - L'esponente
eèy(la potenza di 2) meno 1023. - La frazione
fè laxxxparte (parte frazionaria della base), prendendo i 52 bit più significativi.
Al contrario, un modello di bit (definito da segno s, esponente ee frazione f, ciascuno un numero intero) rappresenta il numero:
(s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52))
Sfida
Dato un numero reale n, emette la sua frazione di 52 bit della doublerappresentazione di ncome numero intero.
Casi test
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)
Puoi controllare altri numeri usando questo riferimento C che usa campi di bit e un unione.
Si noti che la risposta prevista è la stessa per +ne -nper qualsiasi numero n.
Ingresso e uscita
Si applicano le regole standard.
Formato di input accettato:
- Un numero in virgola mobile, almeno con
doubleprecisione interna - Una rappresentazione in formato stringa del numero in decimale (non è necessario supportare la notazione scientifica, poiché è possibile utilizzare
1000...00o0.0000...01come input)
Per l'output, è tollerabile un errore di arrotondamento nel bit meno significativo.
Condizioni vincenti
Questo è code-golf , quindi vince il byte più basso in ogni lingua.