एक निजी परियोजना के रूप में मैं अपनी पालतू परियोजना के लिए एक मनमानी प्रेसिजन संख्या प्रकार को लागू करने पर काम कर रहा हूं।हाथ से पहले कैसे निर्धारित किया जाए यदि कोई हस्ताक्षरित गणना संभावित रूप से बहती है?
मुझे पहले से ही सभी लोकप्रिय, परीक्षण और मजबूत पुस्तकालयों के बारे में पता है जो ऐसा करते हैं। मैं एक स्व सुधार शिक्षा परियोजना के रूप में समाधान पर काम करना चाहता हूं।
मैं क्षेत्र शोध कर रहा हूँ और यह पता लगाने की अगर वहाँ को किसी तरह से मोटे तौर पर भविष्यवाणी इससे पहले कि मैं वास्तव में गणना करने अगर एक ऑपरेशन एक अतिप्रवाह कारण होगा है कोशिश कर रहा। मैं झूठी सकारात्मकताओं के बारे में इतना चिंतित नहीं हूं।
मैं गणना के लिए उपयुक्त सबसे छोटी जगह का उपयोग करने में सक्षम होना चाहता हूं। यदि गणना इसकी मूल सीमाओं के भीतर रहेगी तो मैं इसे वहां रखूंगा।
उदाहरण के लिए: Multiplying two 64 bit Integers if each are large enough will cause an overflow.
मैं इसे पहचानना चाहता हूं और संख्याओं को केवल मेरे नंबर प्रकार में परिवर्तित कर सकता हूं यदि परिणाम संकल्प के 64 बिट से अधिक हो सकता है। मैं इस प्रयोग में पर नंबरों पर हस्ताक्षर कर रहा हूं।
अतिप्रवाह/अंडरफ्लो का पता लगाने के लिए सबसे अधिक सक्षम, कुशल तरीका क्या है?
ने कभी भी इसी तरह की परियोजना की कोशिश नहीं की, इसलिए केवल quesions मिल गया: पहले से बहने के बारे में जानने में क्या बात है? छोटे nmbers के लिए अनुकूलन जल्दी होना चाहिए, या कुछ कम स्पष्ट? यू को एक सटीक समाधान की आवश्यकता है, या उस व्यक्ति को स्वीकार करें जो झूठी अतिप्रवाह अलार्म दे सकता है? – vmatyi
आपके प्रश्न और उत्तर में से किसी एक के जवाब में आपकी टिप्पणी का कहना है कि आप हस्ताक्षरित ऑपरेटरों का उपयोग कर रहे हैं, लेकिन शीर्षक हस्ताक्षरित कहता है। जो यह है?बिना हस्ताक्षर किए गए अंकगणित से निपटने के लिए शायद आसान है, और शायद मनमानी परिशुद्धता संख्याओं के साथ काम करने के लिए अधिक उपयुक्त है। –
मैं बेस घटकों के रूप में बिना हस्ताक्षर किए गए आदिम प्रकारों का उपयोग करके मनमानी गणनाओं पर हस्ताक्षर कर रहा हूं, जैसा कि बेस –