में परिवर्तन को परिभाषित करता है मेरे पास मेरे कोड में #define
है। अब एक अजीब समस्या क्रिप्ट हो गई है।सी का मान अनपेक्षित रूप से
मैं इस है:
#define _ImmSign 010100
जाहिर है (मैं एक द्विआधारी संख्या अनुकरण करने के लिए कोशिश कर रहा हूँ), मैं नंबर 10100. बनने के लिए उम्मीद लेकिन जब मैं नंबर का उपयोग इसे में बदल गया है 4160.
यहां क्या हो रहा है? और मैं इसे कैसे रोकूं?
अतिरिक्त
ठीक है, तो यह एक अष्टाधारी के रूप में इस व्याख्या भाषा की वजह से है। क्या कुछ स्मार्ट तरीका है कि भाषा को संख्याओं को पूर्णांक के रूप में समझने के लिए मजबूर करना है? एक अग्रणी 0 अष्टाधारी परिभाषित करता है, और 0x अब मैं इसके बारे में लगता है कि हेक्साडेसिमल को परिभाषित करता है ...
010100 अष्टाधारी में है 0 * 1 + 0 * 8 + 1 * 64 + 0 * 512 + 1 * 4096 = 64 + 4096 = 4160. –
http://www.boost.org/doc/libs/1_42_0/libs/utility/utility.htm#BOOST_BINARY यह आपके लिए उपयोगी हो सकता है। हालांकि सी ++, मुझे लगता है कि यह प्रीप्रोसेसर केवल – Anycorn
@aaa thx सुझाव के लिए है, लेकिन मुझे नहीं लगता कि मुझे किसी तृतीय पक्ष लाइब्रेरी का उपयोग करने की अनुमति है। – NomeN