ফ্লিপপিং
বাইট ফ্লিপ এবং শব্দের ফ্লিপ বাইট বা শব্দের বদলে নেবে। প্রযুক্তিগতভাবে এটি কাজ করে:
ধরা যাক আমাদের দুটি বাইট মান (হেক্সাডেসিমাল): 0x3344
সংখ্যাটি দুটি বাইট নিয়ে গঠিত, নিম্নটি 0x44 এবং উচ্চতরটি 0x33, সুতরাং আসুন তাদের একটি বাইট আকারের দুটি কল্পিত কোষে রাখি:
[33][44]
এখন, সেলগুলি ফ্লিপ করুন:
[44][33]
সুতরাং বাইট উল্টানো মান 0x4433 হবে
শব্দের সাথে একইভাবে শব্দ বিবেচনা করে দুটি বাইট থাকে। ধরা যাক আমাদের একটি দ্বি-শব্দের মান রয়েছে: 0x12345678
এগুলিকে দুটি কাল্পনিক কোষে বিভক্ত করুন, এখন প্রতিটি শব্দ (2 বাইট) রয়েছে:
[1234][5678]
এখন, সেলগুলি ফ্লিপ করুন:
[5678][1234]
সুতরাং শব্দ উল্টানো মান 0x56781234 হবে
নাড়াচাড়া
স্থানান্তর শিফট মান কিছুটা দিকে। এর মানে কী?
আসুন একটি খুব সাধারণ দশমিক সংখ্যা নেওয়া যাক: 5 তারপরে, আসুন এটির বাইনারি উপস্থাপনায় রূপান্তর করুন: 101 তারপরে, এটি বামে 1 দ্বারা স্থানান্তরিত করুন:
[101] << [1010]
আমরা মূলত পুরো বাইনারি ক্রমটি একটি অবস্থান বামে স্থানান্তরিত করে শূন্য স্থানটি শূন্য দিয়ে পূরণ করি।
এখন একই কাজ করুন, তবে ডান স্থানান্তরিত করে:
[101] >> [010]
আমাদের সংখ্যা এখন 10। নীচের 1 টি ডান স্থানান্তরিত হয়ে হারিয়েছে। বামে শূন্যটি কেবল প্রদর্শনের জন্য এবং এর কোনও মূল্য নেই। // প্রযুক্তিগতভাবে একটি সিপিইউ পতাকা রয়েছে যা নির্দেশ করে যে বিটটি হারিয়ে গেছে, তবে এটি ক্যালকুলেটারের সাথে প্রাসঙ্গিক নয়।
ঘোরানো হচ্ছে
ঘোরানো এক ব্যতিক্রম সহ স্থানান্তরিত করার মতো কাজ করে: বিটগুলি কখনই হ্রাস পায় না। সুতরাং, আমরা একই দশমিক মান 5 এবং এর বাইনারি উপস্থাপনা 101 নিই Then তারপরে আমরা একে বাইটের মধ্যে ডানদিকে ঘোরান:
[00000101] ROR [10000010]
আপনি দেখতে পাচ্ছেন যে, [1] যা শিফট ডানদিকে হারিয়েছিল তা আমাদের বাইটের শুরুতে বাহিত হয়েছিল।
বাম স্থানান্তরিত একই, চলুন আমরা এক বিট বহন না করা পর্যন্ত 1 বিট বামে ধারাবাহিক রোটেশনগুলি সম্পাদন করি:
[00000101] ROL [00001010]
[00001010] ROL [00010100]
[00010100] ROL [00101000]
[00101000] ROL [01010000]
[01010000] ROL [10100000]
[10100000] ROL [01000001]