2012-02-09 12 views
20

हमारे परीक्षकों में से एक, स्लाइडर बाउंड वैरिएबल को 18888888888888888 पर सेट करने में कामयाब रहा जो सामान्य रूप से केवल 1-100 के बीच मूल्य ले सकता है। (मैं इसे मॉडल में देख सकता हूं जो xaml फ़ाइल में सहेजा गया है।) इस नंबर के बारे में क्या विशेष है?रहस्यमय संख्या 18888888888888888

यहां कुछ विवरण दिए गए हैं। एप्लिकेशन में एक स्लाइडर है, यह एक दृश्य मॉडल में एक अवलोकन योग्य संपत्ति के लिए बाध्य है। आम तौर पर, जब एप्लिकेशन वर्कस्पेस को सहेजता है, तो यह व्यूमोडेल XamlServices.Save का उपयोग करके सहेजा जाता है। मेरे परीक्षक ने कुछ अजीब व्यवहार की सूचना दी, इस परियोजना को लोड करने पर स्लाइडर का मूल्य -214 दिखा रहा है। मैंने उनसे मुझे फाइल भेजने के लिए कहा और सहेजे गए xaml में मान में मेरा रहस्यमय नंबर शामिल है।

मुझे पता है कि यह मेरे कोड, या कुछ अन्य लाइब्रेरी कोड में एक बग का परिणाम है। मैं आशा करता हूं कि इसे नीचे दबाएंगे। हालांकि, सामान्य "कचरा" मान इस तरह नहीं हो सकते हैं। जब मैं Google करता हूं, तो मुझे कुछ गैर-प्रोग्रामिंग संबंधित पृष्ठ दिखाई देते हैं, जो किसी भी तरह से दिखाता है कि यह संख्या इंटरनेट के इतिहास में उत्पन्न हुई थी (इसलिए यह मेरी बिल्ली नहीं कर रही है)। संक्षेप में, मैं यह पता लगाने की कोशिश कर रहा हूं कि यह संख्या पहली जगह कैसे बनाई जा सकती है, जैसे कि जब आप INT_MAX + 1 देखते हैं, यदि आप पर्याप्त अनुभव कर रहे हैं तो आप इसे पहचान सकते हैं (-2137483648 कोई भी?)।

+1

क्या आप अपने परीक्षक से नहीं पूछ सकते हैं? – balexandre

+5

@ कोरेबाल्सी: क्या आप repro कर सकते हैं? बंद क्योंकि वास्तव में कोई निश्चित उत्तर नहीं है, इस प्रकार यह सब अटकलें अटकलें हैं। – Will

+1

@ एसएलसी और विल, मुझे नहीं पता कि मैं पर्याप्त स्पष्ट नहीं हूं, शायद यह एक बग का परिणाम है, शायद अधिकतर ओवरफ्लो। मैं repro और डीबग करने की कोशिश करेंगे। हालांकि, आप मुझे नहीं बता सकते कि यह सिर्फ एक यादृच्छिक संख्या है, 1 के बाद 16 8 एस? यह एक बग का दुष्प्रभाव होना चाहिए लेकिन मुझे उत्सुकता है कि इसे कैसे बनाया जा सकता है। बस केवल संख्या को गुगल करें, कुछ अजीब मौके हैं, शायद एक समान बग का परिणाम (और उनके लेखकों को शायद इस मुद्दे के बारे में भी पता नहीं है)। या, मैं सिर्फ मज़ा के लिए एक अजीब संख्या trolling और पोस्ट कर रहा हूँ, लेकिन यह कोई साधारण यादृच्छिक संख्या नहीं है। उम्मीद है कि मैं स्पष्ट हूँ। – mentat

उत्तर

2

मान लें कि शुरुआत में 1 स्थान धारक है - स्ट्रिंग के लिए डबल प्रदर्शित करने में त्रुटि।

हमारे पास 16 8 है। सी # में डबल टाइप परिशुद्धता के 16 बाइट तक है। यह इंगित कर सकता है कि स्लाइडर डिस्प्ले 8888888888888888, या 0x10001000100010001000100010001000100010001000100010001000100010001000 के कुछ प्रकार के कचरे के डबल मूल्य को दिखाने का प्रयास कर रहा है।

यह हो सकता है कि परीक्षक ने डबल के मूल्य को किसी प्रकार का NaN मान बनने का कारण बना दिया। (शायद NaN इस तरह प्रदर्शित होता है) जो निश्चित रूप से स्ट्रिंग की लंबाई को समझाएगा।

इसके अलावा, स्लाइडर क्लास डिस्प्ले के प्रतिबंधों के कारण केवल नंबर दिखा रहा है, तो शायद इसे 1x8888888888888888 पढ़ना था। कचरा अंदर कचरा बाहर?

ठीक है, यह मेरा अनुमान है।

+2

प्रयास के लिए धन्यवाद, मैं इसके बारे में सोचूंगा, आपने इसे नाखुश कर दिया होगा। अब सवाल फिर से बंद है। इन सभी उपवासों और चर्चाओं के बाद, कुछ लोगों ने अभी हमारी ओर से और हर किसी के लिए निर्णय लिया ...लोगों को असाधारण रूप से संकीर्ण स्थितियों से बचाने के लिए अधिकारियों का धन्यवाद। आइए सभी चर्चा करें कि हम आईफोन में ध्वनि कैसे खेल सकते हैं। – mentat

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