Left Shift
इसे दो Less Then Signs ( << ) द्वारा Represent करते हैं और ये भी दो Values पर काम करता है। Left Shift Operation में पहली Value का मान हर Bit Left Shift होते ही दुगुना हो जाता है। जैसे-
उपरोक्त उदाहरण में oldValue का मान 2 है जो कि Binary Value 10 के बराबर है जबकि अगले Statement में 5 Bit Left Shift करने पर newValue Variable में Brainy Value “1000000” Store हो जाता है, जो कि Decimal Value 64 के बराबर है। हर Bit के Left Shict होने पर Decimal Value दुगुनी हो रही है। यानी
1 Bit Left Shift होने पर 2 का मान 4 हो जाता है।
2 Bit Left Shift होने पर 2 का मान 8 हो जाता है।
3 Bit Left Shift होने पर 2 का मान 16 हो जाता है।
4 Bit Left Shift होने पर 2 का मान 32 हो जाता है।
5 Bit Left Shift होने पर 2 का मान 64 हो जाता है।
जब Bits Left में Shift होते हैं, तो Right Side के Bits Automatically 0 से Fill हो जाते हैं, जिसे हम निम्न चित्र द्वारा समझ सकते हैं:
उपरोक्त चित्र में आप देख सकते हैं कि यदि Left Most Sign Bit का मान 0 से 1 कर दिया जाए, तो संख्या -64 हो जाएगी। यदि इसी बात को दूसरे तरीके से कहें, तो Left Most Bit का मान 1 होने पर संख्या Negative हो जाती है।
Signed Right Shift
जब हम किसी Signed Value को Right Shift करते हैं तब हमें दो Greater Then Signs (>>) को Use करना पडता है। Signed Right Shift Operation, Left Shift Operation का Exactly उल्टा होता है। यानी हर Bit के Right Shift होने के साथ ही Value का मान आधा होता जाता है, जिसे निम्न उदाहरण द्वारा समझ सकते हैं:
इस Shifting में Left Most Sign Bit Shift नहीं होता, क्योंकि संख्या Sign वाली है। साथ ही Shifting के बाद जो Bit Space बनता है, उसमें 0 Fill हो जाता है, जिसे हम निम्न चित्र द्वारा समझ सकते हैं:
Unsigned Right Shift
Unsigned Right Shift को तीन Greater Then Signs ( >>> ) द्वारा Represent किया जाता है। जब संख्या Positive होती है, तब Shifting Process, Exactly Signed Right Shift की तरह ही होती है। जैसे-
जबकि संख्या के Negative होने की स्थिति में बिल्कुल अलग तरह की Processing होती है। उदाहरण के लिए -64 को 5Bit Right Shift करने पर निम्न स्थिति होती है:
वास्तव में जब JavaScript -64 को 5 Bit Right Shift करता है, तब उपरोक्त Binary के Left Side में पांच 0 Fill हो जाते हैं और हमें 00000111111111111111111111111110 Binary प्राप्त होती है, जो कि 134217726 Decimal Value के बराबर होती है।
वैसे Professional Development में हमें Binary Values के साथ प्रक्रिया करने की जरूरत 99.9% नहीं पडती है। इस प्रकार के Operators की जरूरत तब पडती है जब JavaScript Program की Speed काफी कम हो जाती है या बडी Scientific Calculations को Perform करना होता है। इसलिए यदि इस Operator को ठीक से नहीं समझ पा, हों, तो भी आपको Professional Development में कोई परेशानी नहीं आएगी।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance JavaScript in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance JavaScript in Hindi | Page: 669 | Format: PDF