Arka fon
IEEE 754 Çift kesinlikli kayar nokta biçimi , 64 bitlik gerçek sayıları temsil etmenin bir yoludur. Aşağıdaki gibi görünüyor:
![]()
Gerçek sayı aşağıdaki şekilde ndönüştürülür double:
sSayı pozitifse işaret biti 0, aksi takdirde 1'dir.- Mutlak değeri
nformda2**y * 1.xxx, yani bir bazın 2 katı güç olarak temsil edilir . - Üs
eolany(2 gücü) eksi 1023. - Kesir
f,xxxen önemli 52 biti alan kısımdır (tabanın kesirli kısmı).
Tersine, bir bit deseni (işaret s, üs eve kesirle tanımlanır f, her biri bir tam sayı) sayıyı temsil eder:
(s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52))
Meydan okuma
Gerçek sayısı göz önüne alındığında n, çıkışının 52 bit fraksiyon kısmı, doubletemsili nbir tam sayı olarak.
Test Durumları
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)
Bit alanlarını ve bir birleşimi kullanan bu C başvurusunu kullanarak diğer numaraları kontrol edebilirsiniz .
Beklenen cevabın herhangi bir sayı için +nve -nherhangi bir sayı için aynı olduğunu unutmayın n.
Giriş ve çıkış
Standart kurallar geçerlidir.
Kabul edilen giriş biçimi:
- En az
doubledahili hassasiyete sahip bir kayan noktalı sayı - Sayının ondalık olarak dize ile temsil edilmesi (bilimsel gösterimi desteklemenize gerek yoktur, çünkü giriş
1000...00veya0.0000...01giriş olarak kullanabilirsiniz )
Çıktı için, en az anlamlı bitte bir yuvarlama hatası tolere edilebilir.
Kazanma Koşulu
Bu kod golf , bu nedenle her dilde en düşük bayt kazanır.