কম্পিউটার

C++ বিটসেটের মজার তথ্য?


C++ প্রোগ্রামিং ভাষা c++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরিতে বিটসেট নামে একটি ধারককে সংজ্ঞায়িত করে। এই বিটসেট কন্টেইনারটি বিট স্তরে উপাদানগুলিতে কাজ করার জন্য ব্যবহৃত হয় অর্থাৎ ভেরিয়েবলের প্রতিটি বিট বিট অর্থাৎ প্রদত্ত মানের বাইনারি রূপান্তর।

1. বিটসেট একটি স্ট্রিং এর মত − বিটসেট হল বিটের একটি ধারক ( শুধুমাত্র 0 এবং 1 বৈধ ) আপনি বিটসেটের সূচনা সূচী মান এবং বিবেচিত উপাদানগুলির সংখ্যা দ্বারা নির্দিষ্ট করা বিটগুলির যে কোনও সেট দিয়ে একটি বিটসেট তৈরি করতে পারেন যেমন আপনি বিটসেটের সূচক 1 থেকে শুরু করে 2টি উপাদান সহ একটি বিটসেট তৈরি করতে পারেন এবং এটির শেষে যুক্ত করতে পারেন। বিটসেট।

উদাহরণ − আমাদের বিট স্ট্রিং 01001110-এর সূচক মান 2 থেকে শুরু করে ফুট 4 উপাদানের প্রয়োজন। এই বিটসেটটি 0011 উপাদান গ্রহণ করবে। যা বিটসেটের শেষে যুক্ত করা হবে। সুতরাং, এই পদ্ধতি দ্বারা সংজ্ঞায়িত 8 বিট বিটসেটের মান হল 00000011 .

উদাহরণ

#include <bitset>
#include <string>
#include <iostream>
int main() {
   std::string bit_string = "10010110";
   std::bitset<8> b1(bit_string, 1 , 4);
   std::cout << b1 << '\n' ;
   return 0;
}

আউটপুট

00000010

২. স্ট্রিং থেকে একটি বিটসেট তৈরি করা হচ্ছে − যদি আপনার কাছে এমন একটি স্ট্রিং থাকে যাতে শুধুমাত্র দুটি ধরণের মান থাকে যা তৈরি করার সময় ব্যবহার করা হয়। আপনি এই স্ট্রিংটিকে একটি বিটসেটে রূপান্তর করতে পারেন যা মানগুলিকে 0/1 উপস্থাপনা হিসাবে বিবেচনা করে৷

এই ধারণাটি আরও ভালভাবে বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

আমাদের একটি স্ট্রিং আছে 'xyxxyyx', এটি থেকে আমরা x =0 এবং y=1 বিবেচনা করে অ্যারের মতো একই দৈর্ঘ্যের একটি বিটসেট তৈরি করতে পারি। বিটসেটটি 0100110 হিসাবে তৈরি করা হয়েছে। .

এই কাজটি সম্পাদন করার জন্য লাইব্রেরিতে একটি কনস্ট্রাক্টর সংজ্ঞায়িত আছে −

bitset(str, offSet, size, zeroVal , oneVal) ;

এটি একটি কনস্ট্রাক্টর যা একটি বিটসেট তৈরি করতে সংজ্ঞায়িত করা হয়। আসুন কনস্ট্রাক্টরের গভীরে খনন করি এবং কনস্ট্রাক্টরের প্রতিটি প্যারামিটার কী বোঝায় তা শিখি।

str − যে স্ট্রিংটি বিটসেট তৈরি করার জন্য বিবেচনা করা হবে।

অফসেট − স্ট্রিং-এর স্ট্রিং ইনডেক্স।

আকার − যে বিটসেট তৈরি করা হবে তার আকার।

শূন্যভাল − স্ট্রিংয়ের মান যা 0

বলে বিবেচিত হবে

ওয়ানভাল − স্ট্রিংয়ের মান যা 1]

বিবেচনা করা হবে

উদাহরণ

#include <bitset>
#include <string>
#include <iostream>
using namespace std;
int main() {
   string bitstr = "xyxxyyyx";
   bitset<8> bits(bitstr, 0, bitstr.size(), 'x', 'y');
   cout <<"The bitset is : "<< bits << '\n';
}

আউটপুট

The bitset is: 01001110

3. বিটসেটকে স্ট্রিং এ রূপান্তর করুন - বিটসেটে, একটি বিটসেটকে একটি স্ট্রিংয়ে রূপান্তর করার জন্য একটি ফাংশন রয়েছে। ফাংশন to_string() একটি স্ট্রিং এ বিটসেটের মান সংরক্ষণ করতে ব্যবহৃত হয়। স্ট্রিংটির দৈর্ঘ্য বিটসেটের দৈর্ঘ্যের সমান।

স্ট্রিং-এ বিট সেটের উপাদান সংরক্ষণ করার ক্রম বিটসেট অর্ডারের মতোই, অর্থাৎ স্ট্রিংয়ের বিটসেটের প্রথম উপাদানের প্রথম উপাদান।

01010100-এর স্ট্রিং রূপান্তর হল "01010100"৷

আপনি পদ্ধতির প্যারামিটার তালিকায় উল্লেখ করে যেকোনো অক্ষর দ্বারা 0 এবং 1 প্রতিস্থাপন করতে পারেন। এটি বিটসেট নির্মাণের সময় আমরা যা শিখেছি তার বিপরীত।

উদাহরণ

#include <iostream>
#include <bitset>
using namespace std;
int main() {
   bitset<8> b(19);
   cout<<"The value of the bitset is : "<<b<<endl;
   cout<<"The string conversion of the bitset is : "<<b.to_string()<<endl;
   cout<<"The string conversion by replacing 0 with T and 1 with P is : ";
   cout<< b.to_string('T', 'P')<<endl;
}

আউটপুট

The value of bitset is : 00010011
The string conversion of bitset is : 00010011
string conversion by replacing 0 with T and 1 with P is : TTTPTTPP

আরও অনেক অপারেশন আছে যেগুলো বিটসেটে করা হয়। এছাড়াও কিছু বিট অপারেটর আছে যেগুলি ব্যবহার করা যেতে পারে। এগুলি হল বিটসেটের মৌলিক ফাংশন এবং বৈশিষ্ট্য যা এখানে আলোচনা করা হয়েছে।


  1. C++ এ getline (স্ট্রিং)

  2. C++ এ () এ স্ট্রিং

  3. C++ এ একটি স্ট্রিং টোকেনাইজ করা

  4. C++ এ একটি স্ট্রিংকে টোকেনাইজ করবেন?