>>
হচ্ছে রাইট (ডান) শিফট অপারেটর। এটি সংখ্যার বাইনারি বিটগুলোকে এক ঘর ডানে সরিয়ে দেয়। বাইনারি বিটগুলো এক ঘর ডানে সরালে যে মান পাওয়া যায়, কোনো সংখ্যাকে ২ দিয়ে ভাগ করলে একই মান পাওয়া যায়। ভাগ করার চেয়ে রাইট শিফট অনেক দ্রুত চলে1, তাই বড় সংখ্যাকে ভাগ করার জন্য এটা ব্যবহার করা হয়। একইভাবে লেফট শিফট (<<
) গুণের কাজ করে। শিফট অপারেটরের কাজের পদ্ধতি ও কয়েকটি ব্যবহার দেখানো হলো:
10 >> 1 = 5 1010 >> 1 = 0101 //left bit fills with 0; 10/2 = 5
11 >> 1 = 5 1011 >> 1 = 0101 //integer division; 11/2 = 5
06 << 1 = 12 0110 << 1 = 1100 //right bit fills with 0; 6*2 = 12
03 << 2 = 12 0011 << 2 = 1100 //shifted 2 bits; 3*2^2 = 12
01 << 3 = 8 0001 << 3 = 1000 //easy calculation of 2^n; 2^3 = 8
শিফট অপারেটর কেবল স্বাভাবিক সংখ্যায় (N = {1, 2, 3, 4, ...}) কাজ করবে। শূন্যকে শিফট করলে শূন্যই থাকবে। ঋণাত্মক সংখ্যার জন্য শিফটিং অসংজ্ঞায়িত (undefined)।
1. আধুনিক মেশিন ও কম্পাইলারে গুণ-ভাগ এমনভাবে ইমপ্লিমেন্ট করা থাকতে পারে যে এগুলো আসলে শিফট অপারেটরের মতোই দ্রুতগতির।
answered
07 Nov, 06:22
Mosharraf Hosain ♦
756●1●8