IEEE 754 Kayan Nokta Dönüştürücü nedir?
Bu araç, 32 bitlik bir onaltılık (hex) değeri IEEE 754 tek duyarlık standardına göre temsil ettiği gerçek sayıya çözer. Bu standart, C ve Java'daki float türünün ve günümüzdeki çoğu donanımın kullandığı formattır. Sekiz hex hanesi girersiniz; hesaplayıcı bunları bir float'ı oluşturan üç alana ayırır: 1 işaret biti, 8 üs biti ve 23 mantis (kesir) biti. Ardından bu alanları birleştirerek ondalık bir değer üretir.
Nasıl kullanılır?
32 bitlik değeri onaltılık olarak yazın (örneğin 40490FDB). "0x" öneki isteğe bağlıdır ve hex olmayan karakterler yok sayılır. 8 haneden kısa değerler soldan sıfırlarla tamamlanır. Sonuç; ondalık değerin yanı sıra çözümlenmiş işareti, saklanan üssü, sapmasız (gerçek) üssü ve mantisi gösterir. Böylece bit dizilimini kendiniz doğrulayabilirsiniz.
Formülün açıklaması
Normal sayılar için değer $$\text{Value} = (-1)^{s} \times \left(1 + \frac{m}{2^{23}}\right) \times 2^{(e - 127)}$$ şeklindedir. Buradaki 127, tek duyarlık için kullanılan üs sapmasıdır (bias). Baştaki "1 +", normalize edilmiş ikili sayıların her zaman taşıdığı örtük (gizli) önceki biti temsil eder. Saklanan üs e sıfır olduğunda sayı subnormal (denormal) olur: örtük baştaki 1 kaybolur ve üs -126'da sabitlenir. e değeri 255 olduğunda ise sonuç sonsuzdur (mantis 0) veya NaN'dir.
Çözümlü örnek
40490FDB değerini ele alalım. İkili olarak işaret 0'dır (pozitif), üs alanı 10000000 = 128'dir, dolayısıyla sapmasız üs \(128 - 127 = 1\) olur. Mantis bitleri 4788187'ye eşittir; bu da \(4788187/8388608 \approx 0{,}5707964\) kesrini verir. Değer ise $$(1 + 0{,}5707964) \times 2^{1} \approx 3{,}14159274$$ olur — yani π sayısının tek duyarlıkla yapılabilen en yakın yaklaşıklaması.
Sıkça Sorulan Sorular
Sonuç neden tam olarak beklediğim sayı değil? Tek duyarlık yalnızca yaklaşık 7 ondalık basamaklık doğruluk sunar; bu nedenle birçok ondalık değer, temsil edilebilen en yakın float'a yuvarlanır.
Çift duyarlık (64 bit) için durum ne? Bu araç 32 bitlik tek duyarlığı işler. Çift duyarlık (double) ise 11 üs biti, 52 bitlik mantis ve 1023 sapma kullanır.
7FC00000 ne verir? Bu bir NaN'dir (üs tamamen 1, mantis sıfırdan farklı) ve sonlu bir sayı değildir.