मैं बहुत सारे उत्तर पढ़ता हूं लेकिन कोई भी सही ढंग से नहीं बताता है कि डबल शब्द कहां से आता है। मुझे याद है कि कुछ साल पहले मुझे विश्वविद्यालय के एक प्रोफेसर ने बहुत अच्छी व्याख्या दी थी।
VonC के उत्तर की शैली को याद करते हुए, एक एकल सटीक फ़्लोटिंग पॉइंट प्रतिनिधित्व 32 बिट के एक शब्द का उपयोग करता है।
- संकेत के लिए 1 बिट , एस
- प्रतिपादक के लिए 8 बिट्स , 'ई'
- अंश के लिए 24 बिट्स , जिसे मंटिसा भी कहा जाता है , या गुणांक (भले ही सिर्फ 23 का प्रतिनिधित्व किया गया हो)। चलो इसे 'एम' कहते हैं ( मंटिसा के लिए , मुझे यह नाम पसंद है क्योंकि "अंश" गलत समझा जा सकता है)।
प्रतिनिधित्व:
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
bits: 31 30 23 22 0
(केवल इंगित करने के लिए, साइन बिट अंतिम है, पहले नहीं।)
एक डबल सटीक फ़्लोटिंग पॉइंट प्रतिनिधित्व 64 बिट के एक शब्द का उपयोग करता है।
- संकेत के लिए 1 बिट , एस
- प्रतिपादक के लिए 11 बिट्स , 'ई'
- अंश के लिए 53 बिट्स / मंटिसा / गुणांक के (भले ही केवल 52 का प्रतिनिधित्व किया गया हो), 'एम'
प्रतिनिधित्व:
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 × 2 पी
जहां β प्रतिनिधित्व का आधार है। लेकिन चूंकि अंश एक बाइनरी संख्या है, इसलिए α 1 हमेशा 1 के बराबर होगा, इस प्रकार अंश को 1.α 2 α 3 के रूप में फिर से लिखा जा सकता है ... α t + 1 × 2 p और प्रारंभिक 1 को स्पष्ट रूप से ग्रहण किया जा सकता है, आदि। एक अतिरिक्त बिट के लिए जगह बनाना (α t + 1) )।
अब, यह स्पष्ट रूप से सच है कि 32 का डबल 64 है, लेकिन यह वह जगह नहीं है जहां से शब्द आता है।
परिशुद्धता दशमलव अंक हैं की संख्या दर्शाता है सही प्रतिनिधित्व त्रुटि या सन्निकटन के किसी भी प्रकार के बिना, यानी। दूसरे शब्दों में, यह इंगित करता है कि कितने दशमलव अंक सुरक्षित रूप से उपयोग किए जा सकते हैं।
उस के साथ, दशमलव अंकों की संख्या का अनुमान लगाना आसान है जिसे सुरक्षित रूप से उपयोग किया जा सकता है:
- एकल परिशुद्धता : लॉग 10 (2 24 ), जो लगभग 7 ~ 8 दशमलव अंक है
- दोहरी सटीकता : लॉग 10 (2 53 ), जो लगभग 15 ~ 16 दशमलव अंक है