Birçok cevap okudum ama hiçbiri double kelimesinin nereden geldiğini doğru bir şekilde açıklamıyor gibi görünüyor . Birkaç yıl önce sahip olduğum bir üniversite profesörü tarafından verilen çok iyi bir açıklamayı hatırlıyorum.
VonC'nin cevabının tarzını hatırlatarak, tek bir hassas kayan nokta gösterimi 32 bitlik bir kelime kullanır.
- 1 bit işareti , S
- Onent 'E' üssü için 8 bit
- Mantis veya katsayı olarak da adlandırılan kesir için 24 bit (sadece 23'ü temsil etmesine rağmen). Buna 'M' diyelim ( mantis için bu ismi "kesir" yanlış anlaşılabileceği için tercih ederim).
Temsil:
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
bits: 31 30 23 22 0
(Sadece işaret etmek için, işaret biti ilk değil, sonuncudur.)
Bir çift kayan ayrımlı hassas 64 bit bir kelime kullanır.
- 1 bit işareti , S
- 'E' üssü için 11 bit
- Kesir / mantis / katsayı için 53 bit (sadece 52 temsil edilmiş olmasına rağmen), 'M'
Temsil:
S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
bits: 63 62 52 51 0
Fark edebileceğiniz gibi, mantisin her iki tipte de temsiline kıyasla biraz daha fazla bilgiye sahip olduğunu yazdım . Aslında, mantis, önemsiz olmadan temsil edilen bir sayıdır 0
. Örneğin,
- 0.000124 0.124 × 10 −3 olur
- 237.141 olur 0.237141 × 10 3
Bu mantis her zaman formda olacak demektir
0.α 1 α 2 ... α t × β p
burada β temsilin temelidir. Fraksiyonu bir ikili sayı olması itibariyle, a 1 , her zaman bu şekilde fraksiyon 1.α olarak yeniden olabilir, 1 'e eşit olacak 2 α 3 ... α t + 1 × 2 , p ve dolaylı olarak kabul edilebilir başlangıç 1 ekstra bir bit için yer açmak (α t + 1 ).
Şimdi, 32'nin çiftinin 64 olduğu açıktır, ancak kelimenin geldiği yer bu değildir.
Hassas olan ondalık basamak sayısını gösterir doğru temsili hatası veya yaklaşık her türlü olmadan, yani. Başka bir deyişle, kaç tane ondalık basamağın güvenle kullanılabileceğini gösterir.
Bununla birlikte, güvenle kullanılabilecek ondalık basamak sayısını tahmin etmek kolaydır:
- tek duyarlık : yaklaşık 7 ~ 8 ondalık basamak olan log 10 (2 24 )
- çift duyarlık : yaklaşık 15 ~ 16 ondalık basamak olan log 10 (2 53 )