वीएस कोड में सी फाइलें लिखते समय, मैंने सबसे पहले एक फाइल का नाम रखा।c.cpp। प्रोग्राम पूरा करने के बाद, निष्पादन के दौरान मुझे त्रुटियों का सामना करना पड़ा। 30 मिनट की समस्या निवारण के बाद, मुझे पता चला कि समस्या फ़ाइल नाम में है:
.c एक्सटेंशन के कारण IDE ने गलती से इसे C प्रोग्राम के रूप में पहचान लिया, जिसके कारण VS कोड को मेरे कोड को संकलित करने के लिए g (C कंपाइलर) के बजाय gcc (C कंपाइलर) का उपयोग करना पड़ा।
कैप्शन: कितना मूर्ख!
जावा का डिज़ाइन दर्शन पारंपरिक संकलित भाषाओं से काफी भिन्न है:
यह डिज़ाइन "एक बार लिखें, कहीं भी चलाएं" के लक्ष्य को प्राप्त करता है, जबकि सी निष्पादन योग्य (.exe फ़ाइलें) एक ही प्लेटफ़ॉर्म पर चलने तक सीमित हैं।
फायदे: एक ही प्रोग्राम बिना संशोधन के विभिन्न कंप्यूटरों पर चल सकता है
नुकसान:प्रक्रिया में अतिरिक्त कदम पारंपरिक तरीकों की तुलना में संकलन को थोड़ा धीमा कर सकता है
एक बार लिखें, कहीं भी दौड़ें
---------James Gosling
लिटिल एंडियन: सबसे कम महत्वपूर्ण बाइट सबसे कम पते पर संग्रहीत है। यह भंडारण विधि सीपीयू मेमोरी रीडिंग को सुविधाजनक बनाने के लिए उभरी, जो निम्न से उच्च पते तक होती है। दिलचस्प बात यह है कि यह आम तौर पर इंसानों द्वारा संख्याएं लिखने के विपरीत है।
उदाहरण के लिए:
329933 का बाइनरी प्रतिनिधित्व 00000000 00000101 00001000 11001101 है
लिटिल एंडियन भंडारण: 11001101 00001000 00000101 00000000
जैसा कि हम देख सकते हैं, लिटिल एंडियन बाइनरी प्रतिनिधित्व में बाइट्स के क्रम को उलट देता है। हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि प्रत्येक बाइट के भीतर बिट क्रम अपरिवर्तित रहता है!
टाइप कास्टिंग शुरू करने के लिए मेरा पसंदीदा प्रयोग!
# includeint main() { int a; int *p; a=329933; p=&a; char *q; q=(char*)p; printf("%d\n",*p); printf("%d\n",*q); }
आउटपुट:
329933 -51
मैं उत्सुक हूं कि इसका आउटपुट -51 क्यों है?
क्या यह एक संयोग है? आइए दो और उदाहरण आज़माएँ
printf("%d\n",*(q 1)); printf("%d\n",*(q 2));
इसे अजमाएं:
फोर्स्ड टाइप कास्टिंग करते समय, (चार)पी चार-बाइट इंट के पहले बाइट के पते को इंगित करेगा, जो 11001101 है।
सबसे बाईं ओर वाला 1 ऋणात्मक चिह्न दर्शाता है, जो दर्शाता है कि यह एक ऋणात्मक संख्या है। दो पूरक लागू करने के बाद, हमें मिलता है: 0110011 (अंतिम 7 बिट्स)
(नोट: सकारात्मक संख्याओं के लिए, दोनों का पूरक केवल दशमलव संख्या का द्विआधारी प्रतिनिधित्व है। नकारात्मक संख्याओं के लिए, दोनों का पूरक सबसे बाएं (उच्चतम) बिट को छोड़कर सभी बिट्स को उल्टा करके, फिर 1 जोड़कर प्राप्त किया जाता है सबसे दाईं ओर।)
इसे दशमलव में बदलने पर हमें -51 मिलता है। दिलचस्प है, है ना?
बहुत से लोग आश्चर्य करते हैं कि यह -128 क्यों है। यदि आप उत्तर जानते हैं, तो बेझिझक इसे टिप्पणी अनुभाग में साझा करें। इससे न केवल दूसरों को मदद मिलेगी बल्कि आपको अपने विचारों को व्यवस्थित करने में भी मदद मिलेगी।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3