লেফট শিফট এবং রাইট শিফট

লেফট শিফট এবং রাইট শিফট এর মান সহজ পদ্ধতিতে নির্নয় করা যায়।এটা করার জন্যে আমরা আগে লেফট শিফট এবং রাইট শিফট কি সেটা জেনে রাখি।
যেমন আমরা যদি (১২<<২) কে লেফট শিফট দুই ঘর করতে চাই তাহলে এর মান কি হবে?
১২ এর সবগুলো বিট বামদিকে দুই ঘর সরে যাবে, আর যদি চাইতাম যে ১২ কে রাইট শিফট ২ ঘর;তাহলে লিখতাম (১২ >> ২)।আর এই যে বিট সরিয়ে দেওয়া হচ্ছে তাহলে শুন্যস্থানে কি হবে?শুন্যস্থানে সবগুলোকে আমরা ০ বিট দিয়ে পূর্ণ করব।

লেফট শিফটঃ
কম্পাইলার প্রথমে দশকে বাইনারি ডিজিট এ পরিনত করবে তারপর প্রত্যেক ডিজিট কে দুই ঘর বামে বসিয়ে আসবে এবং তারপর ঐ মানটাকে বাইনারি থেকে ডেসিমেলে কনভার্ট করে দশমিক মানটি প্রকাশ করবে।

নিচে ধাপগুলো দেখান হলঃ
১ম ধাপঃ দশমিক সংখ্যাটি কে বাইনারিতে রুপান্তর।১০ এর বাইনারি মান =১০১০।
২য় ধাপঃ উপরিক্ত মানের প্রত্যেকটি ডিজিট কে দুই ঘর বামে সরালে কি পাওয়া যাবে?পাওয়া যায় হচ্ছে ১০১০০০।
৩য় ধাপঃএই ধাপে বাইনারি মান টিকে আবার দশমিকে কনভার্ট করে দশমিক মান প্রকাশ করতে হবে। মানটি পাবে দশমিকে ৪০।

লক্ষণীয়  বিষয়ঃ উপরিক্ত বিষয়টি ভালভাবে লক্ষ করলে দেখা যাবে যখনি বলা হল দুই ঘর বামে লেফট শিফট করতে তখনি বাইনারি মানটি দুই ঘর বামে সরে গেল বা তারসাথে দুইটি শুন্য যোগ করা হল। অর্থাৎ ১০১০ থেকে দুইটা শুন্য যোগ করে ১০১০০০ হল।
আরও লক্ষণীয় যে, আমরা কি করলে দশমিকের একটা সংখ্যার শেষে দুইটি শুন্য পাব।
এটা সহজেই বলে দেওয়া যায় যে, আমরা যদি একটা সংখ্যার সাথে দশ গুন করি তাহলে সংখ্যার শেষে একটি শুন্য বাড়বে। 
যেমন ১০*১০=১০০।এভাবে ১০০ গুন করলে দুইটি শুন্য হবে। মানে ১০*১০০=১০০০।এভাবে বাইনারি সংখ্যার ক্ষেত্রেও ১০(এটা বাইনারি ডিজিট যার দশমিক মান ২)গুন করলে সংখ্যাটির শেষে একটা শুন্য পাব।
১০০(এটা বাইনারি ডিজিট যার দশমিক মান ৪)দুইটা শুন্য পাব।
অর্থাৎ লেফট শিফট মানেই গুন

যেমন ধর, ১২<<২ এর মান কত হবে?
বাইনারি করলে এই মান পাব ১১০০০০ যার দশমিক মান হবে ৪৮।কিন্তু এত কিছু করতে গেলে আমাদের একটু সময় বেশি দরকার হবে।
সহজভাবে উপরের ধাপের মত করে দেখ। প্রথমে ১২ এর বাইনারি মান ১১০০ * ১০০(যেহেতু লেফট শিফট ২ সেইজন্যে দুইটি শুন্য ডানে পাওয়া যাবে। তাই ১০০ দিয়ে গুনন)=১১০০০০ যার বাইনারি মান বা ৪৮।অর্থাৎ ১২ * ৪(যেহেতু বাইনারি ১০০ এর দশমিক মান ৪ এবং লেফট দুই এর জন্যে দুইটি শুন্য পাব তাই বাইনারি ১০০ দ্বারা গুন) = ৪৮।

এভাবে ১২<<৩ = ১২* ৮ = ৯৬(৮যেহেতু বাইনারি ১০০০ এর দশমিক মান ৮)
আরও ২টি উদাহরন  দেখলে এটা বুঝে যাবেঃ
১।৫<<১=৫*২(বাইনারি ১০)=১০
২।৯<<২=৯*৪(বাইনারি ১০০)=৩৬

রাইট শিফটঃ
১২>>২ উদাহরণটি দেখ, আশা করি বুঝে যাবে।
১ম ধাপঃ ১২ এর বাইনারি মান।
২য় ধাপঃ সেই মানের প্রতিটি ডিজিট কে দুই ঘর ডানে সরাতে হবে ।
৩য় ধাপঃ তারপর তাকে দশমিকে রুপান্তর করে ফল প্রকাশ করতে হবে।

এই ক্ষেত্রে লক্ষ করলে দেখা যাবে যে, দুই ঘর ডানে সরানোর কারনে দুইটা শুন্য হারায় যাচ্ছে। আর কখন দুটি শুন্য হারাই যাবে কোন সংখ্যার ডান থেকে?
যখন তাকে ১০০ দারা ভাগ করা হবে।
অর্থাৎ রাইট শিফট মানেই ভাগ
তাই ১২>>২  (বাইনারি মান ১১০০/১০০=দশমিক মান ১২/৪ বা ৩)।
আরও ২টি উদাহরণ দেখঃ
১।১০০>>২ = ১০০/৪=২৫
২।১>>১=১/২=০.৫০==০

No comments

Powered by Blogger.