Right Shift Operator (>>)
ये Operator
, Operand के Bits को Right में Shift करने का काम करता है |
हमें
किसी Operand
के Bits को जितना Shift करना
होता है , हम इस Operator के बाद वह संख्या लिख देते है |
जैसे
Val
का मान 128 है और हमें इसके Bits
Orientation को 2 अंक Right में Shift करना हो तो हम Val >>
2 लिखते है | इस
Statement
से Val में Stored Bits 10000000 दो Bit Right में Shift हो
जाता है और हमें 00100000 प्राप्त होता है |
हम
जितने Bits
Right में Shift करते है , Bit –
Pattern में Left Side में उतने ही 0
fill हो जाते हैं |
Program
#include <stdio.h>
#include <conio.h>
main()
{
int k = 1028, l;
printf("\n Value of Identifier K is %d \n", k);
l = k >> 2;
printf("\n After 2-Bits Right Shifting \n");
printf(" The Value of K is %d \n", l);
getch();
}
Output
Value of Identifier K is 1028
After 2-Bits Right Shifting
The Value of K is 257
इस प्रोग्राम में
हम देख सकते है कि Operand K में Stored
Bits , Right में Shift हो रहे हैं |
जैसे
– जैसे Bits
Right में Shift होते है तो K का मान भी बदलता जाता है | Right
Shifting से एक और बहुत महत्वपुर्ण तथ्य सामने आता है , जो ये है कि यदि हम क्रम से
किसी संख्या को एक – एक Bit Right Shift करते जाते है , तो Operand
का मान भी क्रम से आधा होता जाता है |
यानी Right Shifting से हम जितने Bits Right में Shift करते है , उतनी ही बार Operand का मान आधा हो जाता है | जैसे इस Program में हुआ है | 1028 को यदि 4 Bit Right में Shift किया जाए तो ये कहा जा सकता है कि 1028 में चार बार दो का भाग दिया गया है | यानी
हमने जैसा कि
पहले बताया कि हम Bitwise Operator का प्रयोग
केवल Char या int प्रकार के Operand
के साथ ही कर सकते है और यहां int प्रकार
के Operand K के साथ
प्रक्रिया कि है | यहां
ये सवाल दिमाग में आ सकता है कि 257 /2 = 128.5 होना
चाहिए था फिर 128 क्यों हुआ |
इसकी
वजह यही है कि int प्रकार का मान पूर्णाक में ही हो
सकता है | int में
दसमलव संख्या मान्य नहीं है और Bitwise Operators float या double
को मान्य नहीं करते , वे केवल int या char
को मान्य करते है इसलिए यहां 128.5 ना हो कर 128
ही हुआ है |
No comments