वर्तमान में मैं अपने अनुप्रयोगों में से एक में समीकरण (2^A)[X + Y*(2^B)]
लागू कर रहा हूं।32 बिट चर के ओवरफ्लो
समस्या 32 बिट मान के ओवरफ़्लो के साथ है और मैं 64 बिट डेटा प्रकार का उपयोग नहीं कर सकता।
मान लीजिए कि B = 3
और Y = 805306367
, यह 32 बिट मान बहता है, लेकिन जब X = -2147483648
, परिणाम 32 बिट रेंज पर आता है।
तो मैं (Y*2^B)
के परिणाम को स्टोर करना चाहता हूं। क्या कोई इस के लिए कुछ समाधान सुझा सकता है .... ए और बी -15
से 15
और X
, Y
से 2147483647..-2147483648
से मूल्य हो सकता है।
आउटपुट 0...4294967295
से हो सकता है।
पर जीएनयू एकाधिक प्रेसिजन अंकगणित लाइब्रेरी पर विचार हो सकता है, तो एक = बी = 15 और एक्स = वाई = 2147483647 तो परिणाम 42 9 4 9 672 9 5 से कहीं अधिक है। क्या अन्य प्रतिबंध हैं जो 0 में उत्पादन को बाध्य करते हैं ... 42 9 4 9 672 9 5 रेंज? – Andrei
आपके समीकरण में, '^' xor, या शक्ति है? वर्ग ब्रैकेट का प्रतिनिधित्व क्या करता है? –