[24]-PREPROCESSOR
हमने C का basic जान लिया है, परन्तु #include <stdio.h> क्यों लिखते हैं ये नहीं जाना. आज इस यह और इससे related बाते जानेंगे.
शुरू में हमने पढ़ा था कि हम program लिखते हैं, उसके बाद computer उसे machine की भाषा में बदलता है. इस प्रक्रिया(process) को कहते हैं program को compile करना. यह compile करने कि प्रक्रिया कई चरणों(steps) में होती है. आज हम इसके पहले step को जानेंगे. इसके साथ ही हम यह भी जान लेंगे कि हर program के शुरू में #include <stdio.h> क्यों लिखते हैं.
हम जानते हैं कि printf एक function है. यह function stdio.h नाम की file में defined (declared) है. जब program को compile करते हैं तो पहले step में compiler #include <stdio.h> को हटाकर उसकी जगह stdio.h file का content डाल देता है. इस process को pre-processing कहते हैं. ऐसा करने से program को यह पता चल जाता है कि printf function कहाँ किस तरह से defined है और उसे किस तरह से run करना है. अन्यथा error आ जायेगी कि printf function नहीं मिल रहा.
stdio का मतलब है Standard Input and Output. इस file(stdio.h) में वो सब function defined हैं जो input/output लेने के काम आते हैं. printf output को print करने के काम आता है जबकि scanf input लेने के काम आता है. दोनों ही function stdio.h file में defined हैं.
#define ABC 1
#define किसी भी constant को define करने के लिए उपयोग में लाया जाता है. #define ABC 1 लिखने पर जहाँ जहाँ program में ABC लिखा होगा उसकी जगह 1 compiler पहले step में 1 लिख देगा. #define को macro भी कहते हैं.
#define ADD4(a) (a+4)
यह भी एक macro है जो parameter ले सकता है. इसका use करने पर program compile करने के 1st step में जहाँ भी ADD4(x) लिखा होगा वहां (x+4) लिख जायेगा जहाँ x कुछ भी हो सकता है, variable या कुछ और. जैसे कि अगर ADD4(5) लिखा है तो उसकी जगह (5+4) हो जायेगा.
#ifdef xyz
...
#endif
अगर हमने #define का use करके xyz कहीं define किया है तो #ifdef और #endif के बीच में लिखा हुआ program compile होगा अन्यथा दोनों के बीच लिखा हुआ program हटा दिया जायेगा.
Note: एक pre-processor एक line में ही लिखा जाता है. एक line में एक से ज्यादा pre-processor या एक pre-processor एक से ज्यादा line में नहीं लिख सकते, अन्यथा program नहीं चलेगा.
#include का example हम शुरू से देखते आये हैं. नीचे अन्य pre-processor commands के example भी देखते हैं.
ऊपर दिए गए program में AREA(rad) की जगह (PI*rad*rad) और फिर इसकी जगह (3.14159*rad*rad) हो जायेगा. ध्यान दे कि यह function call करने के बराबर नहीं है. function call करने में function द्वारा return की हुई value area को मिल जाती पर यहाँ पर AREA(rad) कि जगह (3.14159*rad*rad) लिख दिया जाता है और बिना कोई function call किये यहीं से जो value calculate होती है वो area को मिल जाती है.
अगर आपको यह लेख पसंद आया हो तो अपने दोस्तों को भी बताएं क्योंकि ये उनके लिए भी उपयोगी सिद्ध हो सकता है!! नीचे दिए गए link के माध्यम से इसे आसानी से facebook twitter और Google Buzz पर भी Share कर सकते हैं.
[25]-AIRTHMETICAL OPERATORS
आज Hindi के इस C/C++ programming language tutorial को आगे बढ़ाते हुए हम arithmetic operators के बारे में और जानेंगे.
operator यानि संक्रिया. operator एक function की तरह ही है जिसे एक चिन्ह के द्वारा लिख सकते हैं, जो एक या एक से अधिक मान लेता है और output में एक मान देता है(एक मान return करता है) इनकी जानकारी नीचे दी गयी है.
ऊपर दिए गए program की तीसरी line में a और b को add किया गया है जो कि 8 return करेगा. a और b की value change नहीं होंगी. return value 8 को हमने किसी variable में save नहीं किया इसलिए यह lost हो जायेगा. नीचे example में हमने उस return value को c में save किया है.
= भी एक operator है जो अपने right side लिखे गए expression की value को left side में लिखे गए variable में डाल देता है. जैसे कि ऊपर c = a+b लिखने पर right side में a+b 8 देगा इसलिए c की value 8 हो जायेगी.
ध्यान दे कि ऊपर दिए गए example में a = b लिखने के बाद a में 3(b की value) आ जायेगा, b में 5 नहीं आएगा क्योंकि = अपने left side में लिखे variable में right side की value डालता है, इसका उल्टा नहीं करता. यह भी ध्यान दें कि left side में सिर्फ एक variable ही होना चाहिए, कुछ और नहीं. यदि a+b = c लिखेंगे तो c में a+b की value नहीं आएगी बल्कि program error दे देगा, क्योंकि left side में सिर्फ एक variable नहीं है बल्कि a+b है. = में एक बात और है कि यह अपने right side के expression की value return भी करता है.
ऊपर दिए गए example में c = a%b करने से c की value 2 हो जायेगी और यह(c=a%b) 2 return भी करेगा इसलिए d = (c=a%b) लिखने से return value भी d में भी आ जायेगी.
ऊपर दिए गए सभी operators जिस तरह का input(int,float etc.) लेते हैं उसी तरह का output देते हैं. जैसे कि अगर 30/8 करेंगे तो 3 आएगा. 30 और 8 दोनों int हैं इसलिए result भी int आएगा, दशमलव में मान नहीं आएगा, दशमलव के बाद वाले अंक हट जायेंगे. agar 30.0/8.0 करेंगे तो 3.75 आएगा.
ऊपर दिए गे सभी operator, binary operator हैं. इसका मतलब यह हुआ कि वो 2 संख्याए लेते हैं. अब हम कुछ unary operators के बारे में जानेंगे जो सिर्फ एक ही संख्या लेते हैं.
1. x++ और ++x : ये दोनों ही variable x की value 1 बढ़ा देते हैं. x++ x की पुरानी value return करेगा और ++x x की नयी value return करेगा. अगर सिर्फ x++ या ++x लिखना हो तब दोनों एक है हैं परन्तु यदि इनका use किसी expression में करना हो तब ध्यान रखना चाहिए. नीचे example से और स्पष्ट हो जायेगा.
ऊपर दिए गए program में दूसरी line run होने के बाद a की value 1 बढ़कर 6 हो जायेगी पर चूंकि a++ पुरानी value return करता है इसलिए b में 5 जायेगा. तीसरी line run होने के बाद a की value 6 से बढ़कर 7 हो जायेगी और c में 7 जायेगा क्योंकि ++a a की नयी value return करता है. चौथी line run होने के बाद b की value 5 से बढ़कर 6, c की value 7 से बढ़कर 8 हो जायेगी, d में 13 जायेगा(d = b की पुरानी value + c की बढ़ी हुई value = 5+8)
x-- और --x भी ठीक इसी तरह कम करते हैं परन्तु यह x की value 1 कम करते हैं. ये दोनों operator(++ और --) सिर्फ int(पूर्णांक) के लिए हैं. float और double datatype में use करने पर error आएगी.
[26]-BINARY NUMBER SYSTEM
आज इस c++ programming के इस hindi tutorial को आगे बढ़ाते हुए logical operators के बारे में जानेंगे. इसके लिए निम्न बातों का ज्ञान जरुरी है.
1. Binary Number System - इसके बारे में नीचे बताया जा रहा है, उसके बाद logical operator पढेंगे.
Binary से decimal और decimal से binary में convert करना भी सीखेंगे.
किसी चीज को गिनने के लिए गिनती जरुरत होती है. इस गिनती को लिखने के लिए एक ऐसे तरीके की जरुरत होती है जिसके द्वारा कितनी भी ज्यादा चीजों को गिन सकें. इसके लिए बचपन में हमने जो गिनती सीखी है उसमे 0 से 9 तक अंक होते हैं. इन अंको का use करके कहीं तक भी गिनती लिख सकते हैं. किसी भी संख्या का अगला अंक जानने के लिए हम इकाई का अंक एक बढ़ा देते हैं जैसे कि 85 के बाद 86 आता है(क्योंकि इकाई 5 का अगला अंक 6 है). अगर इकाई का अंक सबसे बड़ा अंक हो, तो फिर उसे वापस 0 कर देते हैं और दहाई का अंक 1 बढ़ा देते हैं. जैसे कि 59 के बाद 60 आता है क्योंकि इकाई 9 है जो कि सबसे बड़ा अंक है(अंक सिर्फ 0 से 9 तक हैं) इसलिए 0 हो गया और दहाई एक बढ़ गया.
अब मान लीजिए आपके पास 0 से 7 तक कुल 8 अंक ही हैं. सिर्फ इन 8 अंको से गिनती कैसे लिखेंगे? उसी तरह जैसे कि ऊपर बताया गया है. 7 के बाद 10 आ जायेगा, क्योंकि हमारे पास 0 से 7 तक अंक ही हैं. गिनती कुछ इस तरह होगी.
0,1,2,3,4,5,6,7, 10,11,12,13,14,15,16,17,20, 21,22 .... 71,72,73,74,75,76,77,100,101,102 ...
इसे लिखने में अगला अंक निकालने के लिए में वही तरीका अपनाया गया है जो ऊपर बताया गया है. अगर समझने में कोई दिक्कत है तो मेरी discussion site पर आकर मुझसे discuss कर सकते हैं.
* * * * * * * * * * * *
अगर आपसे पूछा जाये कि ऊपर कितने * हैं लिखकर बताइए तो आप लिखेंगे 12. परन्तु अगर आपकी गिनती में 0 से 7 तक अंक ही होते तो आप लिखते 14(ऊपर लिखी गिनती के अनुसार गिनिए) .
गिनती लिखने का system(Counting system) जिसमे 0 से 9 तक कुल 10 अंक होते हैं, decimal system(आधार 10,base 10) कहते हैं. ऊपर हमने 0 से 7 तक कुल 8 अंको का use करके जिस system का use करके गिनती लिखी उसे octal system(आधार 8,base 8) कहते हैं.
अब स्थानीय मान को याद करते हैं जो कि बचपन में पढ़ा था. चूँकि हमारे Counting system 12 को स्थानीय मान के रूप में इस तरह लिखेंगे.
12 = 2x100 + 1x101 = 10 + 2
Octal system(आधार 8,base 8) में वही संख्या 14 थी. चूँकि octal system में 8 अंक ही होते हैं इसलिए इसे स्थानीय मान के रूप में इस तरह लिखेंगे.
14 = 4x80 + 1x81 = 8 + 4
संख्या वही है परन्तु अलग अलग system में लिखने का तरीका अलग है. * उतने ही हैं, परन्तु decimal system में उसे 12 और octal system में उसे 14 लिखेंगे.
इसी तरह अगर आपके पास 0 से 3 तक कुल 4 अंक ही होते तो गिनती इस तरह लिखी जाती. 0,1,2,3,10,11,12,13,20,21,22,23,30,31,32,33,100,101,102 ... इसे Quaternary system(आधार 4,base 4)कहते हैं. इस गिनती में ऊपर दिए गए * की संख्या को 30 लिखते.
अगर अगल-बगल में अलग अलग base वाली गिनती लिखें तो यह पता चलेगा कि 11(base 10) को base 8 में 13, base 4 में 23 लिखा जायेगा. आप जानते ही हैं कि सामान्यता लिखने के लिए हम base 10 वाली संख्याए use करते हैं. किसी अन्य base वाली संख्या लिखते समय उसके नीचे base भी लिख देते हैं. जैसे कि base 8 में 75 = (75)8, base 4 में 123 = (123)4
किसी भी base वाली संख्या को base 10 वाली संख्या में convert करना
इसके लिए उस संख्या को स्थानीय मान के रूप में लिखकर जोड़ दें. नीचे example दिए जा रहे हैं.
(75)8 = 5x80 + 7x81 = 5x1 + 7x8 = 61 (base 10 में)
(123)4 = 3x40 + 2x41 + 1x42 = 3x1+ 2x4 + 1x16 = 27 (base 10 में)
base 10 वाली संख्या को किसी अन्य base वाली संख्या में convert करना
जिस base में convert करना है उस संख्या से भाग दें. शेष जो बचेगा वह इकाई का अंक हो जायेगा. भागफल को फिर base से भाग दें. नया शेष जो बचेगा वह दहाई का अंक हो जायेगा. नए भागफल को फिर से base से भाग दें. यह process तब तक करते रहे जब तक भागफल 0 न आ जाये. नीचे कुछ example दिए जा रहे हैं.
98 को base 8 में बदलने का example:
98/8 = 12(भागफल),2(शेष) ---> 2(इकाई)
12/8 = 1(भागफल), 4(शेष) ---> 4(दहाई)
1/8 = 0(भागफल), 1(शेष) --> 1 (सैकडा)
इसलिए 98 = (142)8
98 को base 4 में बदलने का example:
98/4 = 24(भागफल),2(शेष) ---> 2(इकाई)
24/4 = 6(भागफल), 0(शेष) ---> 0(दहाई)
6/4 = 1(भागफल), 2(शेष) --> 2 (सैकडा)
1/4 = 0(भागफल), 1(शेष) --> 1(हज़ार)
इसलिए 98 = (1202)4
Binary Number System: अगर हमारे पास सिर्फ 2 अंक ही होते - 0 और 1, तो हम गिनती कुछ इस तरह लिखते:
0,1,10,11,100,101,110,111,1000,1001,1010,1011,1100 ... इस system को जिसमे सिर्फ 2 अंक ही होते हैं, Binary system(द्विआधारी) कहते हैं.
98 को base 2 में बदलने का example:
98/2 = 49(भागफल),0(शेष) ---> 0(इकाई)
49/2 = 24(भागफल), 1(शेष) ---> 1(दहाई)
24/2 = 12(भागफल), 0(शेष) --> 0(सैकडा)
12/2 = 6(भागफल), 0(शेष) --> 0(हज़ार)
6/2 = 3(भागफल), 0(शेष) --> 0(दस हज़ार)
3/2 = 1(भागफल), 1(शेष) --> 1(लाख)
1/2 = 0(भागफल), 1(शेष) --> 1(दस लाख)
इसलिए 98 = (1100010)2
1100010 को base 10 में बदलने का example:
(1100010)2 = 0x20 + 1x21 + 0x22 + 0x23 + 0x24 + 1x25 + 1x26 = 0+2+0+0+0+32+64 = 98
logical operators के बारे में अगले भाग में जानेंगे.
हमने C का basic जान लिया है, परन्तु #include <stdio.h> क्यों लिखते हैं ये नहीं जाना. आज इस यह और इससे related बाते जानेंगे.
शुरू में हमने पढ़ा था कि हम program लिखते हैं, उसके बाद computer उसे machine की भाषा में बदलता है. इस प्रक्रिया(process) को कहते हैं program को compile करना. यह compile करने कि प्रक्रिया कई चरणों(steps) में होती है. आज हम इसके पहले step को जानेंगे. इसके साथ ही हम यह भी जान लेंगे कि हर program के शुरू में #include <stdio.h> क्यों लिखते हैं.
हम जानते हैं कि printf एक function है. यह function stdio.h नाम की file में defined (declared) है. जब program को compile करते हैं तो पहले step में compiler #include <stdio.h> को हटाकर उसकी जगह stdio.h file का content डाल देता है. इस process को pre-processing कहते हैं. ऐसा करने से program को यह पता चल जाता है कि printf function कहाँ किस तरह से defined है और उसे किस तरह से run करना है. अन्यथा error आ जायेगी कि printf function नहीं मिल रहा.
stdio का मतलब है Standard Input and Output. इस file(stdio.h) में वो सब function defined हैं जो input/output लेने के काम आते हैं. printf output को print करने के काम आता है जबकि scanf input लेने के काम आता है. दोनों ही function stdio.h file में defined हैं.
Pre-processing
किसी भी program में जो line # से start होती हैं उन्हें pre-processor कहते हैं. Compiler पहले step में इन्हें process करके program को modify कर देता है. जैसा कि ऊपर बताया गया है. #include एक pre-processing directive हैं जो उसके बाद लिखे गए file के content को उसकी जगह लिख देता है. कुछ और भी pre-processing directive होते हैं जिनके बारे में नीचे बताया गया है.#define ABC 1
#define किसी भी constant को define करने के लिए उपयोग में लाया जाता है. #define ABC 1 लिखने पर जहाँ जहाँ program में ABC लिखा होगा उसकी जगह 1 compiler पहले step में 1 लिख देगा. #define को macro भी कहते हैं.
#define ADD4(a) (a+4)
यह भी एक macro है जो parameter ले सकता है. इसका use करने पर program compile करने के 1st step में जहाँ भी ADD4(x) लिखा होगा वहां (x+4) लिख जायेगा जहाँ x कुछ भी हो सकता है, variable या कुछ और. जैसे कि अगर ADD4(5) लिखा है तो उसकी जगह (5+4) हो जायेगा.
#ifdef xyz
...
#endif
अगर हमने #define का use करके xyz कहीं define किया है तो #ifdef और #endif के बीच में लिखा हुआ program compile होगा अन्यथा दोनों के बीच लिखा हुआ program हटा दिया जायेगा.
Note: एक pre-processor एक line में ही लिखा जाता है. एक line में एक से ज्यादा pre-processor या एक pre-processor एक से ज्यादा line में नहीं लिख सकते, अन्यथा program नहीं चलेगा.
#include का example हम शुरू से देखते आये हैं. नीचे अन्य pre-processor commands के example भी देखते हैं.
1
2
3
4
5
6
7
8
9
10
11
12
| #include <stdio.h> #define AREA(r) (PI*r*r) #define PI 3.14159 int main() { int rad = 10; float area = AREA(rad); printf ( "Area of circle is %f\n" , area); scanf ( "%d" , &r); return 0; } |
ऊपर दिए गए program में AREA(rad) की जगह (PI*rad*rad) और फिर इसकी जगह (3.14159*rad*rad) हो जायेगा. ध्यान दे कि यह function call करने के बराबर नहीं है. function call करने में function द्वारा return की हुई value area को मिल जाती पर यहाँ पर AREA(rad) कि जगह (3.14159*rad*rad) लिख दिया जाता है और बिना कोई function call किये यहीं से जो value calculate होती है वो area को मिल जाती है.
अगर आपको यह लेख पसंद आया हो तो अपने दोस्तों को भी बताएं क्योंकि ये उनके लिए भी उपयोगी सिद्ध हो सकता है!! नीचे दिए गए link के माध्यम से इसे आसानी से facebook twitter और Google Buzz पर भी Share कर सकते हैं.
[25]-AIRTHMETICAL OPERATORS
आज Hindi के इस C/C++ programming language tutorial को आगे बढ़ाते हुए हम arithmetic operators के बारे में और जानेंगे.
operator यानि संक्रिया. operator एक function की तरह ही है जिसे एक चिन्ह के द्वारा लिख सकते हैं, जो एक या एक से अधिक मान लेता है और output में एक मान देता है(एक मान return करता है) इनकी जानकारी नीचे दी गयी है.
- +: यह दो संख्याए लेता है और उनका sum return करता है. जैसे कि 5+3 8 return करेगा, इसलिए a = 5+3 लिखने पर a की value 8 हो जाती है.
- -:यह दो संख्याए लेता है और उनका difference return करता है.
- *:यह दो संख्याए लेता है और उनका product return करता है.
- /:यह दो संख्याए लेता है और उनका भागफल(divisor) return करता है.
- %:यह दो संख्याए लेता है और उनका शेषफल(remainder) return करता है.
1
2
3
| int a = 5; int b = 3; a + b; |
1
2
3
| int a = 5; int b = 3; int c = a + b; |
1
2
3
| int a = 5; int b = 3; a = b; |
1
2
3
4
| int a = 5; int b = 3; int c,d; d = (c = a % b); //% शेषफल देता है. |
ऊपर दिए गए सभी operators जिस तरह का input(int,float etc.) लेते हैं उसी तरह का output देते हैं. जैसे कि अगर 30/8 करेंगे तो 3 आएगा. 30 और 8 दोनों int हैं इसलिए result भी int आएगा, दशमलव में मान नहीं आएगा, दशमलव के बाद वाले अंक हट जायेंगे. agar 30.0/8.0 करेंगे तो 3.75 आएगा.
ऊपर दिए गे सभी operator, binary operator हैं. इसका मतलब यह हुआ कि वो 2 संख्याए लेते हैं. अब हम कुछ unary operators के बारे में जानेंगे जो सिर्फ एक ही संख्या लेते हैं.
1. x++ और ++x : ये दोनों ही variable x की value 1 बढ़ा देते हैं. x++ x की पुरानी value return करेगा और ++x x की नयी value return करेगा. अगर सिर्फ x++ या ++x लिखना हो तब दोनों एक है हैं परन्तु यदि इनका use किसी expression में करना हो तब ध्यान रखना चाहिए. नीचे example से और स्पष्ट हो जायेगा.
1
2
3
4
| int a = 5; int b = a++; int c = ++a; int d = (b++) + (++c); |
x-- और --x भी ठीक इसी तरह कम करते हैं परन्तु यह x की value 1 कम करते हैं. ये दोनों operator(++ और --) सिर्फ int(पूर्णांक) के लिए हैं. float और double datatype में use करने पर error आएगी.
[26]-BINARY NUMBER SYSTEM
आज इस c++ programming के इस hindi tutorial को आगे बढ़ाते हुए logical operators के बारे में जानेंगे. इसके लिए निम्न बातों का ज्ञान जरुरी है.
1. Binary Number System - इसके बारे में नीचे बताया जा रहा है, उसके बाद logical operator पढेंगे.
Binary से decimal और decimal से binary में convert करना भी सीखेंगे.
किसी चीज को गिनने के लिए गिनती जरुरत होती है. इस गिनती को लिखने के लिए एक ऐसे तरीके की जरुरत होती है जिसके द्वारा कितनी भी ज्यादा चीजों को गिन सकें. इसके लिए बचपन में हमने जो गिनती सीखी है उसमे 0 से 9 तक अंक होते हैं. इन अंको का use करके कहीं तक भी गिनती लिख सकते हैं. किसी भी संख्या का अगला अंक जानने के लिए हम इकाई का अंक एक बढ़ा देते हैं जैसे कि 85 के बाद 86 आता है(क्योंकि इकाई 5 का अगला अंक 6 है). अगर इकाई का अंक सबसे बड़ा अंक हो, तो फिर उसे वापस 0 कर देते हैं और दहाई का अंक 1 बढ़ा देते हैं. जैसे कि 59 के बाद 60 आता है क्योंकि इकाई 9 है जो कि सबसे बड़ा अंक है(अंक सिर्फ 0 से 9 तक हैं) इसलिए 0 हो गया और दहाई एक बढ़ गया.
अब मान लीजिए आपके पास 0 से 7 तक कुल 8 अंक ही हैं. सिर्फ इन 8 अंको से गिनती कैसे लिखेंगे? उसी तरह जैसे कि ऊपर बताया गया है. 7 के बाद 10 आ जायेगा, क्योंकि हमारे पास 0 से 7 तक अंक ही हैं. गिनती कुछ इस तरह होगी.
0,1,2,3,4,5,6,7, 10,11,12,13,14,15,16,17,20, 21,22 .... 71,72,73,74,75,76,77,100,101,102 ...
इसे लिखने में अगला अंक निकालने के लिए में वही तरीका अपनाया गया है जो ऊपर बताया गया है. अगर समझने में कोई दिक्कत है तो मेरी discussion site पर आकर मुझसे discuss कर सकते हैं.
* * * * * * * * * * * *
अगर आपसे पूछा जाये कि ऊपर कितने * हैं लिखकर बताइए तो आप लिखेंगे 12. परन्तु अगर आपकी गिनती में 0 से 7 तक अंक ही होते तो आप लिखते 14(ऊपर लिखी गिनती के अनुसार गिनिए) .
गिनती लिखने का system(Counting system) जिसमे 0 से 9 तक कुल 10 अंक होते हैं, decimal system(आधार 10,base 10) कहते हैं. ऊपर हमने 0 से 7 तक कुल 8 अंको का use करके जिस system का use करके गिनती लिखी उसे octal system(आधार 8,base 8) कहते हैं.
अब स्थानीय मान को याद करते हैं जो कि बचपन में पढ़ा था. चूँकि हमारे Counting system 12 को स्थानीय मान के रूप में इस तरह लिखेंगे.
12 = 2x100 + 1x101 = 10 + 2
Octal system(आधार 8,base 8) में वही संख्या 14 थी. चूँकि octal system में 8 अंक ही होते हैं इसलिए इसे स्थानीय मान के रूप में इस तरह लिखेंगे.
14 = 4x80 + 1x81 = 8 + 4
संख्या वही है परन्तु अलग अलग system में लिखने का तरीका अलग है. * उतने ही हैं, परन्तु decimal system में उसे 12 और octal system में उसे 14 लिखेंगे.
इसी तरह अगर आपके पास 0 से 3 तक कुल 4 अंक ही होते तो गिनती इस तरह लिखी जाती. 0,1,2,3,10,11,12,13,20,21,22,23,30,31,32,33,100,101,102 ... इसे Quaternary system(आधार 4,base 4)कहते हैं. इस गिनती में ऊपर दिए गए * की संख्या को 30 लिखते.
गिनने का तरीका ꜜ | * | * | * | * | * | * | * | * | * | * | * | * |
decimal(0-9 अंक) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
0-7 अंक | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 |
0-3 अंक | 1 | 2 | 3 | 10 | 11 | 12 | 13 | 20 | 21 | 22 | 23 | 30 |
किसी भी base वाली संख्या को base 10 वाली संख्या में convert करना
इसके लिए उस संख्या को स्थानीय मान के रूप में लिखकर जोड़ दें. नीचे example दिए जा रहे हैं.
(75)8 = 5x80 + 7x81 = 5x1 + 7x8 = 61 (base 10 में)
(123)4 = 3x40 + 2x41 + 1x42 = 3x1+ 2x4 + 1x16 = 27 (base 10 में)
base 10 वाली संख्या को किसी अन्य base वाली संख्या में convert करना
जिस base में convert करना है उस संख्या से भाग दें. शेष जो बचेगा वह इकाई का अंक हो जायेगा. भागफल को फिर base से भाग दें. नया शेष जो बचेगा वह दहाई का अंक हो जायेगा. नए भागफल को फिर से base से भाग दें. यह process तब तक करते रहे जब तक भागफल 0 न आ जाये. नीचे कुछ example दिए जा रहे हैं.
98 को base 8 में बदलने का example:
98/8 = 12(भागफल),2(शेष) ---> 2(इकाई)
12/8 = 1(भागफल), 4(शेष) ---> 4(दहाई)
1/8 = 0(भागफल), 1(शेष) --> 1 (सैकडा)
इसलिए 98 = (142)8
98 को base 4 में बदलने का example:
98/4 = 24(भागफल),2(शेष) ---> 2(इकाई)
24/4 = 6(भागफल), 0(शेष) ---> 0(दहाई)
6/4 = 1(भागफल), 2(शेष) --> 2 (सैकडा)
1/4 = 0(भागफल), 1(शेष) --> 1(हज़ार)
इसलिए 98 = (1202)4
Binary Number System: अगर हमारे पास सिर्फ 2 अंक ही होते - 0 और 1, तो हम गिनती कुछ इस तरह लिखते:
0,1,10,11,100,101,110,111,1000,1001,1010,1011,1100 ... इस system को जिसमे सिर्फ 2 अंक ही होते हैं, Binary system(द्विआधारी) कहते हैं.
98 को base 2 में बदलने का example:
98/2 = 49(भागफल),0(शेष) ---> 0(इकाई)
49/2 = 24(भागफल), 1(शेष) ---> 1(दहाई)
24/2 = 12(भागफल), 0(शेष) --> 0(सैकडा)
12/2 = 6(भागफल), 0(शेष) --> 0(हज़ार)
6/2 = 3(भागफल), 0(शेष) --> 0(दस हज़ार)
3/2 = 1(भागफल), 1(शेष) --> 1(लाख)
1/2 = 0(भागफल), 1(शेष) --> 1(दस लाख)
इसलिए 98 = (1100010)2
1100010 को base 10 में बदलने का example:
(1100010)2 = 0x20 + 1x21 + 0x22 + 0x23 + 0x24 + 1x25 + 1x26 = 0+2+0+0+0+32+64 = 98
logical operators के बारे में अगले भाग में जानेंगे.
शौकिया प्रोग्रामर के लिए सी कार्यक्रम
ReplyDeleteएग गेम सी प्रोग्राम कोड