Kayan nokta tipleri (Tek ve Çift gibi) bellekte bir işaret, bir mantis ve bir üs ile gösterilir. Bilimsel gösterim olarak düşünün:
Sign*Mantissa*Base^Exponent
Onlar - beklediğiniz gibi - üs 2'yi kullanın. Sonsuzluğu ve NaN'i temsil etmeyi sağlayan başka tweaks'ler var ve üs, ofset (buna geri dönecek) ve mantis için bir kısa yol (buna geri dönecek) . Daha fazla ayrıntı için gösterimini ve işlemlerini kapsayan standart IEEE 754'ü arayın.
Amaçlarımız için, onu bir ikili sayı "mantis" ve ondalık ayırıcıyı nereye koyacağınızı söyleyen bir "üs" olarak düşünebiliriz.
Bekar durumunda, imza atması için 1 bit, üs için 8 ve mantis için 23 bittik.
Şimdi, şey şu ki, mantisayı en önemli basamaktan depolayacağız. Soldaki tüm sıfırların alakalı olmadığını unutmayın. İkili olarak çalıştığımızı ve en önemli rakamın 1 is olduğunu biliyoruz. Bunu bildiğimizden beri saklamak zorunda değiliz. Bu steno sayesinde, mantislerin etkili menzili 24 bittir.
※: Sakladığımız sayı sıfır değilse. Bunun için tüm bitleri sıfıra ayarlayacağız. Bununla birlikte, verdiğim açıklama uyarınca, üssün gücüyle 2 (24) (çarpık 1) ile 1 (2 çarpı gücünün gücüne) çarpacağını yorumlamaya çalışırsak. Bu nedenle, düzeltmek için sıfır üs, özel bir değerdir. Üssünde sonsuzluğu ve NaN'yi depolamak için özel değerler de vardır.
Üss ofsetine göre - özel değerlerden kaçınılması haricinde -, ofseti koymak, ondalık basamağı mantinin başlamasından önce veya bitiminden sonra, üs için bir işarete gerek duymadan yerleştirmeyi sağlar.
Bu, büyük sayılar için kayan nokta türünün, ondalık sayıyı mantisin sonunun ötesine koyacağı anlamına gelir.
Mantislerin 24 bitlik bir sayı olduğunu unutmayın. Asla 25 bitlik bir sayı göstermeyecek ... bu fazladan bit içermiyor. Bu nedenle, tek, 2 ^ 24 ve 2 ^ 24 + 1 arasında ayrım yapamaz (bunlar ilk 25 bit sayılardır ve tek olarak gösterilmeyen son bit üzerinde farklılık gösterir).
Bu nedenle, tamsayılar için bekarların aralığı -2 ^ 24 ila 2 ^ 24'tür. Ve 1 ila 2 ^ 24 eklemeye çalışmak 2 ^ 24 ile sonuçlanır (çünkü tür söz konusu olduğunda, 2 ^ 24 ve 2 ^ 24 + 1 aynı değerdedir). Çevrimiçi deneyin . Bu nedenle tamsayıdan türe dönüştürürken bilgi kaybı yaşanıyor. Bu da tek veya çift kullanan bir döngü aslında fark etmeden sonsuz bir döngü olabilir.