मैं सिर्फ यह सुनिश्चित करने के लिए सी ++ साक्षात्कार प्रश्नों का एक गुच्छा से गुजर रहा हूं कि मुझे कुछ भी स्पष्ट नहीं है। अब तक मैं कुछ भी है कि मैं पहले से ही पता नहीं था, नहीं मिला है इस को छोड़कर:एक अभ्यास साक्षात्कार के प्रश्न का उत्तर
long value;
//some stuff
value &= 0xFFFF;
सवाल "? क्या इस कोड के साथ गलत क्या है" है और संकेत देता है कि यह लक्ष्य आर्किटेक्चर के साथ कुछ करने के लिए है।
जब तक कि जवाब सिर्फ "मूल्य प्रारंभ नहीं किया गया" है, मुझे कोई समस्या नहीं दिखाई दे रही है। जहां तक मैं कह सकता हूं, यह सिर्फ मूल्य के 2 कम से कम महत्वपूर्ण बाइट्स को मास्क कर रहा है, और long
कम से कम 2 बाइट होने की गारंटी है, इसलिए वहां कोई समस्या नहीं है।
क्या यह संभवतः long
लक्ष्य आर्किटेक्चर पर केवल 2 बाइट्स हो सकता है, और आप साइन बिट खो रहे हैं? या शायद 0xFFFF int
और int
केवल 2 बाइट है?
अग्रिम धन्यवाद।
शून्य कर दिया गया है, मैं ऐसे नियोक्ता के लिए काम नहीं करता जिसके लिए ऐसे अस्पष्ट प्रश्नों का उत्तर देने की आवश्यकता है। यह एक अंतहीन मुद्दा नहीं है (अंतहीन मतभेद अंकगणित में प्रकट नहीं होते हैं), लेकिन एक साइन-एक्सटेंशन एक, जिसे मैंने जॉन नोवेलर के लिए +1 दिया था। आम तौर पर इस तरह की अप्रत्याशित परेशानी से बचने के लिए हस्ताक्षर किए गए सभी बिट ऑपरेशन करना एक अच्छा विचार है। – Tronic
ध्यान दें कि 'लंबा' कम से कम 32 बिट्स है। 8 बिट प्लेटफार्मों पर, यह 4 बाइट्स है (बेशक, यह अभी भी गैर-2 अपूर्णताओं के लिए साइन समस्याएं पैदा कर सकता है)। –
आपके उत्तर, जोहान्स के साथ क्या हुआ? –