জাভাস্ক্রিপ্ট Shift Operators বিস্তারিত টিউটোরিয়াল
জাভাস্ক্রিপ্টে Shift Operators এমন কিছু অপারেটর যেগুলো বাইনারি (Binary) রূপে একটি সংখ্যার বিটগুলোকে ডান বা বাম দিকে সরিয়ে নতুন মান তৈরি করে। এই অপারেটরগুলো মূলত performance critical কাজ, bitwise operation, এবং বিশেষ ক্যালকুলেশনের জন্য ব্যবহৃত হয়।
Shift Operator কয় ধরনের?
জাভাস্ক্রিপ্টে মূলত তিন ধরণের Shift Operator রয়েছে:
- Left Shift (<<)
- Signed Right Shift (>>)
- Unsigned Right Shift (>>>)
1. Left Shift (<<) ব্যাখ্যা:
Left shift অপারেটর একটি সংখ্যার সব বিটকে বাম দিকে সরিয়ে দেয় এবং ডান পাশে শূন্য (0) বসায়।
উদাহরণ:
var x = 5; // Binary: 0000000000000101
var result = x << 1;
console.log(result); // Output: 10 (Binary: 0000000000001010)
বুঝিয়ে বলি: ৫ এর বাইনারি হলো 0000000000000101। এক বিট বাম দিকে সরালে আমরা পাই 0000000000001010 অর্থাৎ ১০।
2. Signed Right Shift (>>) ব্যাখ্যা:
এই অপারেটর বিটগুলোকে ডান দিকে সরায় এবং sign bit (ধনাত্মক বা ঋণাত্মক) বজায় রাখে।
উদাহরণ:
var x = -8; // Binary: 1111111111111000
var result = x >> 2;
console.log(result); // Output: -2
বুঝিয়ে বলি: -৮ এর ক্ষেত্রে sign bit (বাম পাশের ১) বজায় রাখা হয়। দুই বিট ডানে সরানোর ফলে মান হয় -২।
3. Unsigned Right Shift (>>>) ব্যাখ্যা:
এই অপারেটর sign bit কে উপেক্ষা করে সব সময় ধনাত্মক মান দেয়। এটা শুধুমাত্র unsigned value তৈরি করে।
উদাহরণ:
var x = -8;
var result = x >>> 2;
console.log(result); // Output: 1073741822
বুঝিয়ে বলি: -৮ কে unsigned করে ডান দিকে সরালে একটি বিশাল ধনাত্মক সংখ্যা তৈরি হয়।
Shift Operators এর তুলনামূলক টেবিল:
| অপারেটর | নাম | Sign Bit রাখে? | উদাহরণ |
|---|---|---|---|
| << | Left Shift | N/A | 5 << 1 = 10 |
| >> | Signed Right Shift | হ্যাঁ | -8 >> 2 = -2 |
| >>> | Unsigned Right Shift | না | -8 >>> 2 = 1073741822 |
✅ Shift Operator এর ব্যবহার কোথায় হয়?
- Bit-level optimization
- Game development (graphics engine)
- Cryptography algorithm
- Memory-efficient calculation
- Low-level device programming
গুরুত্বপূর্ণ কিছু টিপস:
- Negative সংখ্যা Unsigned Right Shift করলে বড় ধনাত্মক সংখ্যা হতে পারে।
- Shift operator এর পরে অবশ্যই একটি integer দিতে হয়।
- Left Shift মান বাড়ায়, Right Shift মান কমায়।
উপসংহার:
Shift Operators ব্যবহার করলে আপনি জাভাস্ক্রিপ্টে অধিক পারফরম্যান্স পেতে পারেন। তবে ভুলভাবে ব্যবহার করলে রেজাল্ট ভুল আসতে পারে। তাই প্রতিটি অপারেটরের বাইনারি কার্যকলাপ ভালোভাবে বুঝে ব্যবহার করাই উত্তম।