C++ STL-এ bitset হলো বিট-লেভেলে কাজ করার কন্টেইনার। শুধু ০ এবং ১ স্টোর করে।
১. বিটসেট স্ট্রিংয়ের মতো
স্ট্রিং থেকে নির্দিষ্ট অংশ নিয়ে বিটসেট তৈরি করা যায়।
#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'; // আউটপুট: 00000010
return 0;
}
২. স্ট্রিং থেকে বিটসেট কনস্ট্রাক্ট করা
কাস্টম ক্যারেক্টারকে ০/১ হিসেবে বিবেচনা করে বিটসেট বানানো যায়।
bitset(str, offset, size, zeroVal, oneVal)
zeroVal— যা ০ হিসেবে গণ্য হবেoneVal— যা ১ হিসেবে গণ্য হবে
string bitstr = "xyxxyyyx"; bitset<8> bits(bitstr, 0, bitstr.size(), 'x', 'y'); // আউটপুট: 01001110 (x=0, y=1)
৩. বিটসেটকে স্ট্রিংয়ে কনভার্ট
to_string() মেথড দিয়ে বিটসেটকে স্ট্রিং বানানো যায়। ক্যারেক্টার রিপ্লেসও করা যায়।
bitset<8> b(19); // 00010011
b.to_string(); // "00010011"
b.to_string('T','P'); // "TTTPTTPP" (0→T, 1→P)
আউটপুট উদাহরণ
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