Latar Belakang
IEEE 754 Format floating-point presisi ganda adalah cara untuk mewakili bilangan real dengan 64 bit. Ini terlihat seperti berikut:
![]()
Bilangan real ndikonversi menjadi doubledengan cara berikut:
- Bit tanda
sadalah 0 jika angkanya positif, 1 sebaliknya. - Nilai absolut dari
ndiwakili dalam bentuk2**y * 1.xxx, yaitu kekuatan-2 kali basis . - Eksponennya
eadalahy(kekuatan 2) minus 1023. - Fraksi
fadalahxxxbagian (bagian pecahan dari basis), mengambil 52 bit paling signifikan.
Sebaliknya, pola bit (didefinisikan oleh tanda s, eksponen edan fraksi f, masing-masing bilangan bulat) mewakili angka:
(s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52))
Tantangan
Diberikan bilangan real n, output bagian fraksinya 52-bit sebagai doublerepresentasi nbilangan bulat.
Uji Kasus
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)
Anda dapat memeriksa nomor lain menggunakan referensi C ini yang menggunakan bidang bit dan gabungan.
Perhatikan bahwa jawaban yang diharapkan adalah sama untuk +ndan -nuntuk nomor apa pun n.
Masukan dan keluaran
Aturan standar berlaku.
Format input yang diterima:
- Angka floating-point, setidaknya memiliki
doublepresisi secara internal - Representasi string angka dalam desimal (Anda tidak perlu mendukung notasi ilmiah, karena Anda dapat menggunakan
1000...00atau0.0000...01sebagai input)
Untuk output, kesalahan pembulatan pada bit paling signifikan dapat ditoleransi.
Kondisi Menang
Ini adalah kode-golf , sehingga byte terendah di setiap bahasa menang.