Я читав багато відповідей, але жодна з них, схоже, правильно пояснює, звідки походить слово " подвійний" . Я пам’ятаю дуже гарне пояснення, яке дав професор університету, який я мав кілька років тому.
Згадуючи стиль відповіді VonC, в одному точному поданні з плаваючою точкою використовується слово 32 біт.
- 1 біт для знака , S
- 8 біт для експонента , "E"
- 24 біта для фракції , також званої мантісою , або коефіцієнтом (навіть якщо представлено лише 23). Назвемо це "М" (для мантіси я вважаю за краще це ім'я, оскільки "дріб" можна неправильно зрозуміти).
Представництво:
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
bits: 31 30 23 22 0
(Тільки щоб зазначити, біт знаків - останній, а не перший.)
У подвійній точності подання з плаваючою точкою використовується слово 64 біт.
- 1 біт для знака , S
- 11 біт для показника , "E"
- 53 біта для коефіцієнта дробу / мантіси / коефіцієнта (хоча представлено лише 52), "M"
Представництво:
S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
bits: 63 62 52 51 0
Як ви можете помітити, я писав, що в мантії в обох типах є трохи більше інформації порівняно з її представленням. Насправді мантіса - це число, представлене без усіх його неозначувальних 0
. Наприклад,
- 0,000124 стає 0,124 × 10 −3
- 237.141 стає 0,237141 × 10 3
Це означає, що мантія завжди буде у формі
0.α 1 α 2 ... α t × β p
де β - основа представлення. Але оскільки дріб є двійковим числом, α 1 завжди буде дорівнює 1, тому дріб можна переписати як 1.α 2 α 3 ... α t + 1 × 2 p, а початковий 1 можна неявно припустити, звільнення місця для додаткового біта (α t + 1 ).
Тепер, очевидно, правда, що дубль 32 - це 64, але слово не походить від цього.
Точності вказує кількість десяткових цифр, які правильно , тобто без будь - яких помилок уявлення або наближення. Іншими словами, це вказує, скільки десяткових цифр можна сміливо використовувати.
З огляду на це, легко оцінити кількість десяткових цифр, які можна безпечно використовувати:
- одинарна точність : log 10 (2 24 ), що становить приблизно 7 ~ 8 десяткових цифр
- подвійна точність : log 10 (2 53 ), що становить приблизно 15 ~ 16 десяткових цифр