इससे पहले tutorial में हमने C operators के बारे मे समझा था और सीखा था की C language में कितने प्रकार के operators होते हैं और उनका क्या क्या उपयोग होता हैं वहाँ पर हमने bitwise operators के बारे में अच्छे से नही समझा था । इस tutorial में हम C programming में bitwise operators के बारे अच्छे से समझेंगे और जानेंगे की C programming में कितने bitwise operators available हैं ।
Bitwise operators in C language –
C programming भाषा में, bitwise operators का उपयोग करके operations को बिट स्तर (bit level) पर किया जा सकता है। Computer के CPU में arithmetic logic यूनिट होती हैं ये सभी को पता ही होगा की arithmetic logic unit (ALU) का CPU का क्या काम होता हैं । Arithmetic logic यूनिट mathematics operatons जैसे – addition,subtraction ,multiplication और divide को bit level पर perform करने मे मदत करती हैं । इसमे सभी mathematics operations bit level पर होते हैं तो यदि C programming में ये ही काम करना हैं तो हमे operators की जरूरत पड़ती हैं जिसे हम bitwise operators कहते हैं जो की C programming में bit level पर operations perform करने में मदत करते हैं जिससे performance काफी अच्छी होती हैं ।
C programming में कुछ ऐसे operators भी होते हैं जो identifiers की bit पर काम कर सकते हैं जिनका उपयोग bit level पर टास्क perform करने के लिए किया जाता हैं ।
साधारण हिन्दी भाषा में समझे तो गणना (computation) के दौरान, mathematics operators जैसे: जोड़ (Addition), घटा (Subtraction), गुणा(Multiplication), भाग (Divide), आदि को bit level में बदल दिया जाता है जो processing तेज करता हैं और बिजली की बचत भी करता हैं ।
Bitwise operators वे operators होते हैं जिनका उपयोग बिट-स्तर (bit level) पर data पर perform करने के लिए किया जाता है।
C language में bitwise operators के प्रकार | Types of bitwise operators in C language
इस tutorial में हम 6 bitwise operators के बारे में समझेंगे जिन्हे नीचे दी गयी table में देख जा सकता हैं फिर इन सभी को एक एक करके विस्तार से जानेंगे ।
Operator |
Meaning |
& |
Bitwise AND |
| |
Bitwise OR |
^ |
Bitwise exclusive OR(XOR) |
~ |
Bitwise complement |
<< |
Shift left |
>> |
Shift right |
उपर दी गयी तालिका में सभी C bitwise operators और उनके मतलब को देखा जा सकता हैं ।
C programming में bitwise operators को समझने के लिए एक truth table भी होती हैं ।
The truth table of bitwise operators and bitwise operations in C language –
x |
y |
x&y |
x|y |
x^y |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
चलिये अब इन सभी bitwise operators को विस्तार से समझते हैं ।
Bitwise AND operator in c programming -
Bitwise AND operator & (ampersand) symbol के द्वारा दर्शाया जाता हैं C program में जब भी bitwise AND का उपयोग करते हैं तो वहाँ पर & symbol का उपयोग किया जाता हैं । यह बहुत ज्यादा उपयोग में लाये जाने वाला bitwise operator हैं । bitwise operator & के प्रत्येक side पर दो integer expressions होते हैं।
Bitwise operator AND का आउटपुट 1 होता हैं यदि दो operands की coraspondance bit का मान 1 हैं। यदि किसी operand का कोई भी बिट का मान 0 है तो आउटपुट में 0 मिलता हैं ।
जैसे-
x |
y |
x&y |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
उपर दी गयी तालिका में आप देख सकते हैं की 2 operands की correspondence bit का मान यदि 1 हैं तो & bitwise operator AND लगाने से ouput में 1 मिलता हैं यदि दोनों operand में किसी भी operand के bit का मान 0 हैं तब ouput में 0 मिलता हैं ।
चलिये उदाहरण से समझते हैं –
मान लीजिये हमारे पास 2 मान हैं जो की binary form (01 की form) में हैं ।
6= 0110 ; (in binary)
4= 0100; (in binary)
तब रिज़ल्ट यह मिलता हैं
0110
0100
............
0100 (4 in decimal)
उपर दिये गए उदाहरण में हमने दो operands के bits की एक एक करके तुलना की तुलना करने पर हमे 0100 जो की binary में 4 हैं । तुलना करने पर यदि दोनों operand की bit का मान 1 हैं तो 1 ही ouput में मिलता हैं नहीं तो 0 मिलता हैं ।
चलिये bitwise AND operator को C program से समझते हैं जिसमे हमे समान मान मिलने वाला हैं जो हमे उपर manually मिला हैं ।
#include <stdio.h>
int main()
{
int a=6, b=4;
printf("The output of the Bitwise AND operator a&b is %d",a&b);
return 0;
}
Output –
The output of the Bitwise AND operator a&b is 4
उपर दिये गए उदाहरण में आप देख सकते हैं की हमने दो variables declare और initialize किए int x=6, y=4; जब हम यहाँ bitwise AND & operator को दोनों variables के बीच apply करते हैं तो 0100 (4 in decimal) मिलता हैं । इस तरह से C programming में bitwise AND operator का उपयोग किया जाता हैं ।
Bitwise OR operator in C language –
C programming में Bitwise OR operator को vertical sign (|) के द्वारा दर्शाया जाता हैं । यदि C program में bitwise OR का उपयोग करना हैं तो vertical sign (|) का उपयोग किया जाता हैं जिसे ही bitwise OR operator कहते हैं ।
Bitwise operator OR का आउटपुट 1 होता हैं यदि कोई भी एक operand के bit का मान 1 हैं। यदि इससे अलग हैं तो 0 मान मिलता हैं ।
चलिये तालिका से समझते हैं –
x |
y |
x|y |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
उपर दिये गए उदाहरण में आप देख सकते हैं यदि दो operands के coraspondance bit 1 और 1 हैं तो OR operator के द्वारा भी ouput में 1 ही मिलता हैं बाकी 1 , 0 हैं तब भी 1 ही यदि 0 , 0 हैं तब ही 0 मिलता हैं ।
12= 00001100; (in binary)
20= 00010100; (in binary)
तब रिज़ल्ट यह मिलता हैं (OR)
00001100 (in binary)
00010100 (in binary)
............
00011100 (28 in decimal)
उपर दिये गए उदाहरण में हमने 2 integer numbers लिए और उनको binary code में convert करके OR operator के द्वारा तुलना की जिसमे हमे 00011100 मिलता हैं जो की 28 number का binary कोड़ हैं ।
इस तरह से C program के द्वारा भी यह आउटपुट प्राप्त किया जा सकता हैं जो की नीचे दिये गए उदाहरण से समझ सकते हैं ।
#include <stdio.h>
int main()
{
int x=12, y=20;
printf("The output of the Bitwise OR operator x|y is %d",x|y);
return 0;
}
Output –
The output of the Bitwise OR operator x|y is 28
जैसे हमने AND operator में program बनाया था ऐसे ही OR मैं बनाया हैं इसमे भी 2 variable declare और initialize किए जो की integer data type के हैं int x=12, y=20; तब bitwise OR operator को इनके बीच apply करने से 28 वैल्यू प्राप्त होती हैं जिसे हमने उपर binary form में भी समझा हैं इसलिए कहते हैं bitwise operators bit level पर operations perform करने के लिए उपयोग मैं लाये जाते हैं ।
Bitwise exclusive OR operator (XOR) in C programing –
Bitwise exclusive OR operator को ही XOR operator भी कहते हैं जिसे (^) symbol के द्वारा represent किया जाता हैं ।
चलिये तालिका से समझते हैं –
x |
y |
x^y |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
वैसे तो उपर दी गयी तालिका से आप समझ गए होंगे की कब output 1 मिलेगा और कब ouput 0 मिलेगा यदि हम bitwise exclusive OR operator (XOR) का उपयोग करते हैं तो ।
10= 00001010; (in binary)
20= 00010100; (in binary)
तब रिज़ल्ट यह मिलता हैं (OR)
0000 1010
00010100
............
00011110 (30 in decimal)
Bitwise exclusive OR operator (XOR) का आउटपुट 1 होता हैं यदि दोनों operands के coraspondance bits का मान अलग होता हैं यानि की 0 और 1 या 1 और 0 तब 1 ouput मिलता हैं यदि दोनों operands के coraspondance bits का मान समान हैं तो तब ouput में 0 मिलता हैं । जैसे- 1,1 हैं तो 0 होगा या 0,0 हैं तो तब भी 0 मिलेगा क्यूकी मान समान हैं बाकी आप उपर दी गयी table से भी समझ सकते हैं ।
चलिये C programming में Bitwise exclusive OR operator (XOR) को एक उदाहरण से समझते हैं ।
#include <stdio.h>
int main()
{
int x=10, y=20;
printf("The output of the Bitwise exclusive OR operator (XOR) operator x^y is %d",x^y);
return 0;
}
Output –
The output of the Bitwise exclusive OR operator (XOR) operator x^y is 30
Bitwise complement operator in C language (~)
C language में Bitwise complement operator को tilde sign (~) के द्वारा indicate किया जाता हैं । Bitwise complement operator को one's complement operator के नाम से भी जाना जाता हैं । Bitwise complement operator , operation perform करने के लिए केवल एक operand लेता हैं । Tilde sign को operand से पहले लगाया जाता हैं क्यूकी इसमे 2 operands पर operation perform नही होता हैं ।
चलिये तालिका से Bitwise complement operator समझते हैं ।
उपर दी गयी तालिका से आप आराम से Bitwise complement operator को समझ सकते हैं की अगर bit का मान 1 तो Bitwise complement operator का उपयोग करने से 0 हो जाएगी यदि bit का मान 0 हैं तो 1 हो जाएगा । मतलब की bit का मान 1 से 0 या 0 से 1 हो जाता हैं एक तरीके से opposite मान भी कह सकते हैं ये सबसे आसान हैं समझने में ।
जैसे –
7= 0111 (in binary)
जब operand में bitwise complement operator ~ को apply करते हैं तब हमे यह result प्राप्त होता हैं ।
0111
...........
1000
यदि operand की bit का मान 1 हैं तो 0 हो जाएगा और यदि 0 हैं तो 1 हो जाएगा जैसे – उपर दिये गए उदाहरण में 0111 से 1000 हो गया हैं ।
चलिये C program में bitwise complement operator ~ का उपयोग करके समझते हैं ।
#include <stdio.h>
int main()
{
int x=7;
printf("The output of the bitwise complement ~ operator ~x is %d",~x);
return 0;
}
Output –
The output of the bitwise complement ~ operator ~x is -8
Bitwise shift operators in C programming –
जैसे की हमने सबसे पहली तालिका जिसमे bitwise operators के प्रकार दिये गए हैं वहाँ पर shift left << और shift right >> operators दिये गए हैं जो की shift operators के प्रकार हैं ।
चलिये इन दोनों shift operators को एक एक करके समझते हैं ।
Left shift operator in C language (<<)
Left shift operator को << double Angle bracket symbol के द्वारा परदर्शित किया जाता हैं ।
Left shift operator का उपयोग करने से bits की संख्या (number of bits ) left side में shift होती हैं ।
या कह सकते हैं की left shift operator number of bits को left की ओर खिसका (shift) देता हैं ।
इसे समझने के लिए इसके syntax को समझना बहुत ही जरूरी हैं।
Syntax –
X<<n ;
या
Operand<<n;
उपर दिये गए syntax में operand कोई भी integer variable हो सकता हैं । n यहाँ पर कितनी bits को left में shift करना हैं उनकी संख्या हैं ।
चलिये उदाहरण से समझते हैं –
20= 00010100 (20 in binary code)
लेफ्ट shift operator apply करने पर और n number 3 देने पर 3 bits को shift करेगा ।
तब हमे यह output मिलता हैं ।
00010100<<3=10100000 (160 in number)
उपर दिये गए उदाहरण में हमने 3 bits को left side में शिफ्ट किया हैं ।
इस तरह से C programming left shift << operator काम करता हैं ।
चलिये C language के एक program में left shift operator का उपयोग करते हैं ।
#include <stdio.h>
int main()
{
int x=20;
printf("The value of x<<3 is : %d ", x<<3);
return 0;
}
Output –
The value of x<<3 is : 160
इस तरह से C program के द्वारा भी हमे 160 number मिलता हैं जिसे binary code में convert करने से 10100000 यह कोड़ मिलता हैं जो की manually find किया था ।
Right shift operator in C language (>>)
Right shift operator को >> double Angle bracket(direction right side ) symbol के द्वारा परदर्शित किया जाता हैं ।
Right shift operator number of bits को right की ओर खिसका (shift) देते हैं ।
इसे समझने के लिए इसके syntax को समझना बहुत ही जरूरी हैं।
Syntax –
X>>n ;
या
Operand>>n;
उपर दिये गए syntax में operand कोई भी integer variable होता सकता हैं । n यहाँ पर कितनी bits को right में shift करना हैं उनकी संख्या हैं ।
चलिये उदाहरण से समझते हैं –
6= 0110 (6 in binary code)
right shift operator apply करने पर और n number 2 देने पर 2 bits को shift करेगा ।
तब हमे यह output मिलता हैं ।
0110>>2= 0001 (1 in number)
उपर दिये गए उदाहरण में हमने 2 bits को right side में शिफ्ट किया ।
इस तरह से C programming right shift >> operator काम करता हैं ।
चलिये C language के एक program में right shift operator का उपयोग करते हैं ।
#include <stdio.h>
int main()
{
int x=6;
printf("The value of x>>2 is : %d ", x>>2);
return 0;
}
Output –
The value of x>>2 is : 1
इस तरह से C program के द्वारा भी हमे 1 number मिलता हैं जिसे binary code में convert करने से 0001 यह कोड़ मिलता हैं जो की manually find किया था ।
इस तरह से bitwise operators का उपयोग C programming language में किया जाता हैं ।
Recommended Posts:-