কম্পিউটার

XOR ব্যবহার করে একটি প্রদত্ত স্ট্রিংয়ের জন্য 2-এর প্রশংসা?


এই বিভাগে আমরা দেখব কিভাবে আমরা একটি বাইনারি স্ট্রিং এ XOR অপারেশন ব্যবহার করে 2 এর পরিপূরক খুঁজে পেতে পারি। 2 এর পরিপূরক আসলে 1 এর পরিপূরক + 1। আমরা 1 এর পরিপূরক পেতে XOR অপারেশন ব্যবহার করব।

আমরা LSb থেকে স্ট্রিংটি অতিক্রম করব, এবং 0 খুঁজব। যতক্ষণ না আমরা একটি 0 পাই ততক্ষণ আমরা সমস্ত 1 এর 0 থেকে ফ্লিপ করব। তারপর পাওয়া 0 ফ্লিপ করব।

আমরা LSb থেকে পাড়ি দেব। তারপর সমস্ত 0 উপেক্ষা করে যতক্ষণ না আমরা 1 পাই। প্রথম 1 উপেক্ষা করে, আমরা XOR অপারেশন ব্যবহার করে সমস্ত বিট টগল করব।

অ্যালগরিদম

get2sComp(bin)

begin len :=বাইনারি স্ট্রিং ফ্ল্যাগের দৈর্ঘ্য :=i এর জন্য মিথ্যা :=len-1 0 থেকে নিচে, যদি bin[i] 0 হয়, এবং পতাকা সেট করা না থাকে, তাহলে পরবর্তী অংশটিকে উপেক্ষা করুন, সেখানে যান পরবর্তী পুনরাবৃত্তি অন্য যদি পতাকা সেট করা থাকে, তাহলে bin[i] :=বিন[i] শেষ হলে ফ্ল্যাগ :=true এন্ড যদি করা হয় যদি পতাকা সেট করা না থাকে, তাহলে বিনের সাথে 1 সংযুক্ত করুন এবং অন্যথায় ফিরুন bin শেষ ifend 

উদাহরণ

#include  namespace ব্যবহার করে std;string get2sComplement(string bin) { int n =bin.length(); bool flag =মিথ্যা; //পতাকা ব্যবহার করা হয় যদি 1 এর জন্য দেখা হয় (int i =n - 1; i>=0; i--) { // শেষ বিট থেকে ট্রাভার্স যদি (bin[i] =='0' &&!পতাকা) { চালিয়ে যাওয়া } else { যদি (পতাকা) বিন[i] =(বিন[i] - '0') ^ 1 + '0'; // XOR ব্যবহার করে বিট ফ্লিপ করুন, তারপর ASCII flag =true এ রূপান্তর করুন; } } যদি (!পতাকা) // যদি 1 না থাকে, শুধু 1টি রিটার্ন "1" + বিন ঢোকান; else return bin;}int main() { স্ট্রিং str; cout <<"একটি বাইনারি স্ট্রিং লিখুন:"; cin>> str; cout <<"" < 

আউটপুট

একটি বাইনারি স্ট্রিং লিখুন:101101102 এর 10110110 এর পরিপূরক হল 01001010

  1. পাইথন প্রোগ্রাম প্রদত্ত সূচক ব্যবহার করে একটি স্ট্রিংয়ের চরিত্র পরিবর্তন করতে

  2. Python Regex ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এ “1(0+)1”-এর সমস্ত প্যাটার্ন খুঁজুন

  3. পাইথনে অন্তর্নির্মিত ফাংশন ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এর পারমুটেশন

  4. পাইথন ব্যবহার করে প্রদত্ত স্ট্রিং তৈরি না হওয়া পর্যন্ত র্যান্ডম স্ট্রিং তৈরি করা