जावा double
एस IEEE-754 प्रारूप में हैं, इसलिए उनके पास 52-बिट अंश है; दो की किसी भी दो आसन्न शक्तियों (एक के साथ और अगले एक के अनन्य) के बीच, इसलिए 52 वीं शक्ति के लिएएस (यानी, 4503599627370496) अलग-अलग होंगे। उदाहरण के लिए, यह 0.5 शामिल और 1.0 के बीच अलग double
एस की संख्या है, और वास्तव में बहुत से 1.0 शामिल हैं और 2.0 को छोड़कर, और आगे भी।
0.0 और 1.0 के बीच doubles
की गणना करना दो की शक्तियों के बीच ऐसा करने से कठिन है, क्योंकि उस श्रेणी में दो की कई शक्तियां शामिल हैं, और साथ ही, किसी को असामान्य संख्याओं के कांटेदार मुद्दों में शामिल किया जाता है। एक्सपोनेंट्स के 11 बिट्स में से 10 में सवाल की सीमा शामिल है, इसलिए, डिमॉर्मलाइज्ड नंबरों सहित (और मुझे लगता है कि कुछ प्रकार के NaN
) आपके पास double
एस की 1024 गुणा होगी जो कि दो की शक्तियों के बीच है - 2**62
से अधिक नहीं वैसे भी कुल मिलाकर। Denormalized & सी को छोड़कर, मुझे विश्वास है कि गणना 1023 बार 2**52
होगी।
"100.1 करने के लिए 100" की तरह एक मनमाना सीमा के लिए यह और भी कठिन है क्योंकि ऊपरी बाध्य वास्तव में एक double
(दोनों में से किसी भी बिजली की एक सटीक एकाधिक नहीं किया जा रहा) के रूप में प्रतिनिधित्व नहीं किया जा सकता है।एक आसान सन्निकटन के रूप में, के बाद से दो की शक्तियों के बीच प्रगति रैखिक है, तो आप कह सकते हैं कि कहा रेंज दो (64 और 128) के आसपास के शक्तियों के बीच अवधि के 0.1/64
वीं है, तो आप के बारे में
(0.1/64) * 2**52
उम्मीद थी
विशिष्ट double
एस - जो 7036874417766.4004
पर आता है ... एक या दो दें ;-)।
स्रोत
2010-06-05 02:58:30
@Alex: बस ध्यान दें, जब मैंने 100 से 100.1 लिखा था तो मैंने गलत लिखा था। मेरा मतलब 100 से 101 था। असल में, एन और एन + 1 के बीच मनमाने ढंग से एन – polygenelubricants
@ एलेक्स: तो मुझे यह सीधे प्राप्त करने दें: '2 ** 64' संभव डबल मानों से अधिक नहीं हो सकता है (क्योंकि यह 64 बिट है प्रकार), और स्पष्ट रूप से उन मानों का एक बड़ा हिस्सा '0..1' के बीच है? – polygenelubricants
@ पोलीजिन, हां और हां - विशेष रूप से, संभव मूल्यों के लगभग एक चौथाई (किसी भी आधार और एक्सपोनेंट बनाम अंश लंबाई के किसी भी "सामान्य" फ़्लोटिंग पॉइंट प्रस्तुति के लिए) 0.0 और 1.0 के बीच है (1.0 और अनंत के बीच एक और तिमाही, और असली धुरी के नकारात्मक आधे भाग पर शेष आधा)। अनिवार्य रूप से, एक्सपोनेंट के आधे मूल्य (सामान्य पूर्वाग्रह के साथ, इसकी सीमा के भीतर आधे रास्ते) आधार की नकारात्मक शक्तियों का प्रतिनिधित्व करते हैं, इसलिए संख्या <1.0। –