floating point - फ्लोटिंग और पूर्णांक...?




floating-point processor (5)

इंटीजर्स गणना के लिए हैं, फ्लोटिंग-पॉइंट नंबर की गणना के लिए है हमारे पास गणित में दोनों हैं (जहां उन्हें पूर्णांक और वास्तविक संख्या क्रमशः कहा जाता है) इसलिए हमें उन्हें एल्गोरिदम और कार्यक्रमों में भी ज़रूरत है। कहानी का अंत।

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

नहीं, प्रोसेसर पर इंटिजर्स आसान नहीं हैं, प्रोसेसर बिट्स पर मौलिक बूलियन लॉजिक ऑपरेशन करता है। और अगर प्रोसेसर एक्स 1 में एफपी अंकगणितीय की तुलना में तेज अंकगणित पूर्णांक होता है, तो मेमोरी बैंकों के माध्यम से एक ट्रावेल एक काउंटर उदाहरण पायेगा।

हमें भेदों के लिए एफपी नंबर की भी आवश्यकता नहीं है, हम अंश और जोड़े को प्रतिनिधित्व करने के लिए पूर्णांक के जोड़े का उपयोग कर सकते हैं।

पूर्णांक का पूर्ण सटीक कारण है कि हम उन्हें गिनती के लिए उपयोग करते हैं। सभी व्यावहारिक उद्देश्यों के लिए मौजूदा एफपी लागूकरण की परिशुद्धता पर्याप्त है (अब, असहमति को आकर्षित करने के लिए एक जंगली दावा है!)

सादर

निशान

हमें पूर्णांक और प्रोसेसर में फ्लोटिंग की आवश्यकता क्यों है? धन्यवाद


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

इंटीगर्स अक्सर आप की जरूरत है कि सभी कर रहे हैं।


फ़्लोटिंग पॉइंट वैल्यू में पूर्णांकों की तुलना में [अधिक] बड़ी रेंज है साथ ही, वे आंशिक मूल्यों का प्रतिनिधित्व कर सकते हैं। इन सुविधाओं को सटीक नुकसान के मूल्य पर प्रदान किया जाता है

संपादित करें : (मैं सटीक के नुकसान से क्या मतलब है)
पूर्णांक अंकगणित हमेशा सटीक होता है, इतने लंबे समय तक कि कोई ऑपरेंड प्रदान नहीं करता है जो ओवरफ्लो या शून्य द्वारा एक विभाजन का कारण देता है
यह फ्लोटिंग प्वाइंट अंकगणित के साथ नहीं है, जिससे सरल कार्यों में ऐसे मूल्यों का उपयोग करते हुए मूल्यों के कुछ अंश खो सकते हैं। इसका कारण यह है कि फ्लोटिंग प्वाइंट वैल्यू की पेशकश की जबरदस्त रेंज है, यह है कि [अपेक्षाकृत] छोटे भंडारण (आमतौर पर 8 या 16 बाइट्स) को देखते हुए सीमा के भीतर सभी संगत मूल्यों का प्रतिनिधित्व करना असंभव है।


ये सभी संख्याएं हैं, इसलिए आप सोच सकते हैं कि आपको अंतर करने की आवश्यकता नहीं है। लेकिन, कई भाषाओं में एक अनुकूलन संभव है, जब पूर्णांक गणित करना - जोड़, घटाव, गुणा और विभाजन सीपीयू निर्देशों के साथ संभव है। इसी तरह, ऐसे निर्देश भी होते हैं जो फ्लोटिंग पॉइंट नंबर पर समान ऑपरेशन करते हैं, लेकिन क्योंकि मशीन में अलग-अलग संख्याओं का प्रतिनिधित्व किया जाता है, और ऑपरेशन अलग-अलग होते हैं, तो यह प्रोसेसर में स्पष्ट रूप से पूर्णांक और फ़्लोट्स के बीच भेद को बुलबुला देता है प्रोग्रामिंग भाषा में ही

सी #, जावा, सी ++, और अन्य भाषाओं में सभी के लिए अलग-अलग प्रकार के इंटिजर्स बनाम फ्लोट्स हैंडलिंग हैं। जावास्क्रिप्ट विपरीत विकल्प बनाता है - कोई विशेष पूर्णांक प्रकार नहीं है, और अगर मैं गलत नहीं हूँ, तो सभी संख्याएं फ़्लोट्स हैं।

क्यों आप ints और floats की आवश्यकता के लिए - फ्लोट मूल्यों की एक बहुत व्यापक श्रेणी की अनुमति है, हालांकि चरम समाप्त होता है (उदाहरण के लिए, खगोलीय मात्रा) सटीक गिर जाता है आप अस्थायी बिंदु गणित में ठीक से 1.37999933247474x10e24 का प्रतिनिधित्व नहीं कर सकते। दूसरी ओर, ints संख्याओं के एक निश्चित सेट के लिए सटीकता और गति प्रदान करते हैं।


थोड़ा अलग पहलू: इंटीजर्स डिजिटल मात्रा के लिए उपयोगी होते हैं, जबकि फ़्लोट्स एनालॉग मात्रा के लिए उपयोगी होते हैं। एक उदाहरण, बंदरगाह में नौकाओं को देखते हुए, नौकाओं की गणना करने के लिए ints का उपयोग करें, जल स्तर का प्रतिनिधित्व करने के लिए फ़्लोट्स का उपयोग करें।






integer