2010-03-26 13 views
50

सी ++ क्यों हस्ताक्षरित डबल वाक्यविन्यास का समर्थन नहीं करता है?सी ++ में डबल असाइन किया गया?

+3

क्या लैंग इसका समर्थन करते हैं? ऐसा लगता है कि यह आमतौर पर माना जाता है कि यदि आप किसी भी प्रकार के फ्लोटिंग पॉइंट का उपयोग कर रहे हैं, तो हस्ताक्षर किए जाने की वस्तुतः आवश्यकता नहीं होती है। – SteelBytes

+0

अरे, मैंने आपका वाक्यविन्यास वाक्यविन्यास तय किया है। –

उत्तर

62

क्योंकि सामान्य फ़्लोटिंग पॉइंट प्रारूप हस्ताक्षरित संख्याओं का समर्थन नहीं करते हैं। उदाहरण के लिए, this list of IEEE 754 formats देखें।

सामान्य हार्डवेयर द्वारा समर्थित एक संख्यात्मक प्रारूप जोड़ना सिर्फ संकलक लेखकों के लिए जीवन कठिन बनाता है, और शायद प्रयास के लायक नहीं माना जाता है।

+1

इसके अलावा * विचार * फ्लोटिंग पॉइंट के साथ है। वह ** किसी भी ** संख्या को अनंतता के लिए नकारात्मक पूर्णांक सहित प्रतिनिधित्व योग्य होना चाहिए। बिना हस्ताक्षर किए गए नंबर इस लक्ष्य के लिए प्रतिकूल हैं। – unixman83

+26

एआरएम, नहीं, यह बात नहीं है। या यदि यह बिंदु है, तो सभी फ़्लोटिंग पॉइंट प्रकार विफलता के लिए बर्बाद हो जाते हैं। संख्याओं का सेट जिसे कभी भी कंप्यूटर में सार्थक तरीके से प्रदर्शित किया जा सकता है ... –

13

सी ++ हस्ताक्षरित फ्लोटिंग पॉइंट प्रकारों का समर्थन नहीं करता है क्योंकि अधिकांश फ़्लोटिंग पॉइंट हार्डवेयर हस्ताक्षरित फ़्लोटिंग पॉइंट प्रकारों का समर्थन नहीं करता है। कुछ ग्राफिक्स कार्ड हस्ताक्षरित फ्लोटिंग पॉइंट के साथ काम करते हैं, लेकिन यह आमतौर पर आंतरिक है, वास्तव में किसी प्रोग्राम या उपयोगकर्ता के लिए दृश्यमान नहीं है।

7

बिना हस्ताक्षर किए गए पूर्णांक सटीक परिशुद्धता प्राप्त करते हैं और हस्ताक्षरित पूर्णांक में थोड़ा अलग-अलग बिट-वार अर्थशास्त्र होते हैं। फ्लोट्स और युगल हमेशा साइन (अधिकांश हार्डवेयर पर) के लिए थोड़ा सा आरक्षित करते हैं और उनके पास कोई बिट-वार अर्थशास्त्र नहीं होता है, इसलिए बिना किसी हस्ताक्षरित वास्तविक प्रकार में कोई वास्तविक लाभ नहीं होता है।

+9

आप सैद्धांतिक रूप से * मंथिसा या एक्सपोनेंट के लिए उस बिट का उपयोग कर सकते हैं, हालांकि, या तो सीमा या सटीकता में वृद्धि कर सकते हैं। – Joey

+1

वैसे मैं एक हस्ताक्षरित डबल को नियंत्रित करना चाहता था कि यह हमेशा जांचने के बिना एक सकारात्मक संख्या है। तो हाँ वहाँ लाभ है। – Zammbi

+0

@ Јοеу: (देर से प्रतिक्रिया के लिए खेद है।) हाँ, यह मदद करेगा, लेकिन सवाल सी ++ में हस्ताक्षरित युगल की कमी के बारे में था। यह इस बारे में नहीं था कि हार्डवेयर इसका समर्थन क्यों नहीं करता है। हार्डवेयर में इसके लिए समर्थन जोड़ने के बिना सी ++ में अवधारणा को जोड़ना आपको कुछ भी नहीं मिलेगा। –

संबंधित मुद्दे