Hintergrund
IEEE 754 Gleitkommaformat mit doppelter Genauigkeit ist eine Möglichkeit, reelle Zahlen mit 64 Bit darzustellen. Es sieht so aus:
![]()
Eine reelle Zahl nwird doublefolgendermaßen in eine umgewandelt :
- Das Vorzeichenbit
sist 0, wenn die Zahl positiv ist, andernfalls 1. - Der Absolutwert von
nwird in der Form dargestellt2**y * 1.xxx, dh eine Potenz von 2 mal einer Basis . - Der Exponent
eisty(die Potenz von 2) minus 1023. - Der Bruch
fist derxxxTeil (Bruchteil der Basis), der die höchstwertigen 52 Bits belegt.
Umgekehrt repräsentiert ein Bitmuster (definiert durch Vorzeichen s, Exponent eund Bruch f, jeweils eine ganze Zahl) die Zahl:
(s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52))
Herausforderung
Bei einer reellen Zahl nwird der 52-Bit-Bruchteil der doubleDarstellung nals Ganzzahl ausgegeben .
Testfälle
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)
Mit dieser C-Referenz, die Bitfelder und eine Vereinigung verwendet, können Sie andere Zahlen überprüfen .
Beachten Sie, dass die erwartete Antwort für +nund -nfür jede Zahl gleich ist n.
Ein- und Ausgang
Es gelten Standardregeln.
Akzeptiertes Eingabeformat:
- Eine Gleitkommazahl, die zumindest
doubleintern eine Genauigkeit aufweist - Eine Zeichenfolgendarstellung der Zahl in Dezimalzahl (Sie müssen keine wissenschaftliche Notation unterstützen, da Sie
1000...00oder0.0000...01als Eingabe verwenden können.)
Für die Ausgabe ist ein Rundungsfehler am niedrigstwertigen Bit tolerierbar.
Gewinnbedingung
Das ist Code-Golf , also gewinnt das niedrigste Byte in jeder Sprache.