Binary Number System in hindi Ramesh Verma

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 के बारे में अगले भाग में जानेंगे.
logical and comparision operator
आज हम C programming के इस hindi tutorial को आगे पढ़ते हुए operators के बारे में और जानेंगे.
सबसे पहले नीचे Logical operators दिए जा रहे हैं.
1. ! - यह  एक uniary operator(NOT) है, जो केवल एक bool value लेता है और उसका उल्टा कर देता है, जैसे कि !true = false, !false = true 
2. || - यह एक binary operator(OR) है जो दो bool value लेता है उसमे से कोई भी true होने पर true देता है अन्यथा false देता है. जैसे कि true || false = true, false || false = false 
3.  && - यह एक binary operator(AND) है जो दो bool value लेता है उसमे से कोई भी false होने पर false देता है अन्यथा true देता है. जैसे कि true || false = false, false || false = false 
इनको इस तरह से समझ सकते हैं कि OR यानि अथवा(या), यानि कि अगर कोई भी एक सही(true) है तो result सही(true) होगा.  अगर दोनो गलत(false) हैं तभी result गलत(false) होगा.
इसी तरह AND यानि और(दोनो), यानि कि दोनो सही(true) है तभी result सही(true) होगा.  कोई भी गलत(false) हैं तो result गलत(false) हो जायेगा.


अब Comparison Operators को एक बार देखते हैं जिनका use पहले भी कर चुके हैं. उसके बार कुछ example में इनको use करेंगे.
1. == - यह  एक binary operator(equal) है जो दो int या दो bool value लेता है, अगर दोनो बराबर है तो bool value true देता है अन्यथा false देता है. जैसे कि (5 == 5) = true , (1 == 2) == false 
2. != - यह  एक binary operator (not equal) है जो दो int या दो bool value लेता है, अगर दोनो बराबर नहीं है तो bool value true देता है अन्यथा false देता है. जैसे कि (5 != 5) = false , (1 != 2) == true 
3. > - यह  एक binary operator (greater than) है जो दो int value लेता है, अगर पहला int बड़ा है तो bool value true देता है अन्यथा false देता है. जैसे कि (5 > 5) = false , (3 > 2) == true 
4. < - यह  एक binary operator (less than) है जो दो int value लेता है, अगर पहला int छोटा है तो bool value true देता है अन्यथा false देता है. जैसे कि (5 < 5) = false , (1 < 2) == true 
3. >= - यह  एक binary operator (greater than or equal) है जो दो int value लेता है, अगर पहला int बड़ा या बराबर है तो bool value true देता है अन्यथा false देता है. जैसे कि (5 > 5) = true , (3 > 2) == true 
4. <= - यह  एक binary operator (less than or equal) है जो दो int value लेता है, अगर पहला int छोटा या बराबर है तो bool value true देता है अन्यथा false देता है. जैसे कि (5 < 5) = true , (1 < 2) == true 

एक example से समझते हैं कि इनका use कैसे होता है. इस example में वर्ष(सन) input में लेंगे और यह print करेंगे कि फरवरी 28 की होगी या 29 की.(सामान्यतः जिस वर्ष में 4 का भाग चला जाये उसमे फरवरी 29 की होती है जिस वर्ष में 100 का भाग जाता है उसमे 400 का भाग भी जाना चाहिए, जैसे क़ी 1900,2100... में फरवरी 28 क़ी है पर 2000 में 29 की)
#include<stdio.h>
void main() {
  int i;
  printf("Enter the year: ");
  scanf("%d",&i);
  if(i%4==0 && i%100!=0) printf("Feb have 29 days");
  else if(i%400==0) printf("Feb have 29 days");
  else printf("Feb have 28 days");
}
% यह बताता है भाग देने पर शेष कितना आया. अगर शेष 0 आया इसका मतलब भाग चला गया. इस example में पहले हमने ये check किया है क़ी वर्ष में 4 का भाग जाये(i%4 ==0 ) और(&&) 100 का भाग न(i %100 !=0) जाये(1984, 2012) या फिर 400 का भाग चला जाये. इसी को थोडा दुसरे तरीके से भी लिख सकते हैं.
#include<stdio.h>
void main() {
  int i;
  printf("Enter the year: ");
  scanf("%d",&i);
  if((i%4==0 && i%100!=0) || i%400==0) printf("Feb have 29 days");
  else printf("Feb have 28 days");
}

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

RS CIT QUESTION -RAMESH VERMA (PART -3)

A to z point name computer