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 अंक)123456789101112
0-7 अंक 12345671011121314
0-3 अंक 123101112132021222330
अगर अगल-बगल में अलग अलग 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 के बारे में अगले भाग में जानेंगे.