2009-03-12 25 views
10

एक दोस्त & मैं बहस कर रहा था कि आज दोपहर के भोजन के दौरान इंफ और नाइन कैसे संग्रहीत किए जाते हैं।इंफ और नाएन का आंतरिक प्रतिनिधित्व क्या है?

उदाहरण के लिए फोरट्रान 9 0 लें। 4-बाइट वास्तविक इंफ या नाएन के मूल्य प्राप्त कर सकते हैं। यह आंतरिक रूप से कैसे संग्रहीत किया जाता है? संभवतः, एक 4-बाइट असली एक संख्या है जो 32 अंकों की बाइनरी संख्या द्वारा आंतरिक रूप से प्रदर्शित होती है। क्या इंफ और नाएन 33 बिट बाइनरी संख्याओं के रूप में संग्रहीत हैं?

उत्तर

20

विशेष रूप से Pesto के link:

आईईईई एकल परिशुद्धता चल बिन्दु मानक प्रतिनिधित्व एक 32 बिट शब्द है, जो के रूप में 0 से 31 गिने प्रतिनिधित्व किया जा सकता है, बाएं से दाएं की आवश्यकता है। पहली बिट है संकेत बिट, S, अगले आठ बिट प्रतिपादक बिट्स हैं, 'E', और अंतिम 23 बिट अंश 'F' हैं:

 
S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF 
0 1  8 9     31 

मूल्य V शब्द का प्रतिनिधित्व करती हो सकता है इस प्रकार निर्धारित किया:

  • हैं E=255 और F अशून्य है, तो V=NaN ("एक संख्या नहीं है")
  • हैं E=255 और F शून्य और 01 है, 1 है तो V=-Infinity
  • हैं E=255 और F शून्य है और S0V=Infinity
  • तो V=(-1)**S * 2 ** (E-127) * (1.F)0<E<255 जहां "1.F" एक अंतर्निहित प्रमुख 1 और साथ एफ लगाकर द्वारा बनाई द्विआधारी संख्या का प्रतिनिधित्व करने का इरादा है है, तो एक बाइनरी बिंदु।
  • यदि E=0 और F nonzero है, तो V=(-1)**S * 2 ** (-126) * (0.F) ये "असामान्य" मान हैं।
  • तो E=0 और F शून्य और S है 1, तो V=-0
  • तो E=0 और F शून्य और S0 है, तो V=0
9

अधिकांश फ़्लोटिंग पॉइंट प्रस्तुति आईईईई मानक पर आधारित हैं, जिसमें set patterns इंफ और नाएन के लिए परिभाषित है।

+2

लिंक टूट गया है है। – 0xbe5077ed