Header Ads

ad728
  • New Updates

    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

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728