Saya membaca banyak jawaban tetapi sepertinya tidak ada yang menjelaskan dari mana kata double berasal. Saya ingat penjelasan yang sangat baik yang diberikan oleh seorang profesor Universitas yang saya miliki beberapa tahun yang lalu.
Mengingat gaya jawaban VonC, representasi floating point presisi tunggal menggunakan kata 32 bit.
- 1 bit untuk tanda , S
- 8 bit untuk eksponen , 'E'
- 24 bit untuk fraksi , juga disebut mantissa , atau koefisien (meskipun hanya 23 yang diwakili). Sebut saja 'M' (untuk mantissa , saya lebih suka nama ini karena "fraksi" bisa disalahpahami).
Perwakilan:
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
bits: 31 30 23 22 0
(Hanya untuk menunjukkan, bit tanda adalah yang terakhir, bukan yang pertama.)
Sebuah ganda presisi floating point representasi menggunakan kata 64 bit.
- 1 bit untuk tanda , S
- 11 bit untuk eksponen , 'E'
- 53 bit untuk fraksi / mantissa / koefisien (walaupun hanya 52 yang diwakili), 'M'
Perwakilan:
S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
bits: 63 62 52 51 0
Seperti yang Anda perhatikan, saya menulis bahwa mantissa memiliki, dalam kedua jenis, satu informasi sedikit lebih banyak dibandingkan dengan perwakilannya. Bahkan, mantissa adalah angka yang diwakili tanpa semua yang tidak signifikan 0
. Sebagai contoh,
- 0,000124 menjadi 0,124 × 10 −3
- 237.141 menjadi 0,237141 × 10 3
Ini berarti mantissa akan selalu dalam bentuk
0.α 1 α 2 ... α t × β p
di mana β adalah basis representasi. Tetapi karena fraksi adalah bilangan biner, α 1 akan selalu sama dengan 1, sehingga fraksi dapat ditulis ulang sebagai 1.α 2 α 3 ... α t + 1 × 2 p dan inisial 1 dapat secara implisit diasumsikan, membuat ruang untuk bit ekstra (α t + 1 ).
Sekarang, jelas benar bahwa ganda 32 adalah 64, tapi itu bukan dari mana kata itu berasal.
The presisi menunjukkan jumlah angka desimal yang benar , yaitu tanpa jenis kesalahan representasi atau pendekatan. Dengan kata lain, ini menunjukkan berapa banyak angka desimal yang dapat digunakan dengan aman .
Dengan demikian, mudah untuk memperkirakan jumlah angka desimal yang dapat digunakan dengan aman:
- presisi tunggal : log 10 (2 24 ), yaitu sekitar 7 ~ 8 digit desimal
- presisi ganda : log 10 (2 53 ), yaitu sekitar 15 ~ 16 digit desimal