में बचा रहा डगलस Crockford की किताब पढ़ रहा हूँ है - जावास्क्रिप्ट अच्छा भागों - और वे कहते हैं:कैसे छोटे पूर्णांक अतिप्रवाह जावास्क्रिप्ट
जावास्क्रिप्ट एक संख्या प्रकार है। आंतरिक रूप से, इसे 64-बिट फ्लोटिंग पॉइंट के रूप में दर्शाया जाता है, जो जावा के डबल के समान होता है। अधिकांश अन्य प्रोग्रामिंग भाषाओं के विपरीत, कोई अलग पूर्णांक प्रकार नहीं है, इसलिए 1 और 1.0 समान मान हैं। यह एक महत्वपूर्ण सुविधा है, क्योंकि कम पूर्णांकों में अतिप्रवाह की समस्याओं को पूरी तरह से परहेज कर रहे हैं तो एक विवरण का एक सा चाहते हैं अन्य भाषाओं के साथ बहुत ज्यादा परिचित है ...
मैं नहीं हूँ। मैं समझ सकता हूं कि 64 बिट क्यों मदद करता है लेकिन उसका बयान फ्लोट्स और युगल की कमी पर लागू होता है।
जेएस में नहीं होने वाली छोटी पूर्णांक ओवरफ्लो स्थिति का एक उदाहरण (छद्म कोड शायद) क्या होगा?
पूर्णांकों से हो सकता है - (2^53 - 1) (2^53 - 1) को .. प्रभावी रूप से एक पर हस्ताक्षर किए 54bit पूर्णांक (लेकिन वास्तव में नहीं, लेकिन यह प्रासंगिक नहीं है) ... लघु पूर्णांक 16 बिट हैं ... 54 बिट 16 बिट से बड़ा है ... इसलिए कोई अतिप्रवाह समस्या –
हस्ताक्षरित लघु के लिए उदाहरण ... 32767 + 1 जेएस में 32768 है, अन्य भाषाओं में यह -32768 –
@ जारोमांडाएक्स है ... क्या यह होना चाहिए - (2^53 + 1) '? मुझे नहीं पता ... बस केवल उत्सुक है। – rnevius