C++ प्रोग्रामिंग भाषा C++ मानक टेम्पलेट लाइब्रेरी में bitset नामक एक कंटेनर को परिभाषित करती है। इस bitset कंटेनर का उपयोग बिट स्तर पर तत्वों पर काम करने के लिए किया जाता है यानी चर के प्रत्येक बिट पर, बिट्स यानी दिए गए मान का बाइनरी रूपांतरण।
1. Bitset एक स्ट्रिंग की तरह है - Bitset बिट्स का एक कंटेनर है (केवल 0 और 1 मान्य हैं)। आप bitset के प्रारंभ इंडेक्स मान और माने जाने वाले तत्वों की संख्या द्वारा निर्दिष्ट बिट्स के किसी भी सेट के साथ एक bitset बना सकते हैं यानी आप bitset के इंडेक्स 1 से शुरू होने वाले 2 तत्वों के साथ एक bitset बना सकते हैं और इसे bitset के अंत में जोड़ सकते हैं।
उदाहरण - हमें बिट स्ट्रिंग 01001110 के इंडेक्स मान 2 से शुरू होने वाले 4 तत्वों की आवश्यकता है। यह bitset 0011 तत्वों को लेगा जिसे bitset के अंत में जोड़ा जाएगा। तो, इस विधि द्वारा परिभाषित 8 बिट bitset का मान 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
2. स्ट्रिंग से Bitset का निर्माण - यदि आपके पास एक स्ट्रिंग है जिसमें निर्माण के दौरान उपयोग किए जाने वाले केवल दो प्रकार के मान हैं। आप इस स्ट्रिंग को एक bitset में परिवर्तित कर सकते हैं जो मानों को उनके संबंधित 0/1 प्रतिनिधित्व के रूप में मानता है।
आइए इस अवधारणा को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं,
हमारे पास एक स्ट्रिंग 'xyxxyyx' है, इससे हम एरे के समान लंबाई वाला एक bitset बना सकते हैं जिसमें x = 0 और y = 1 माना जाता है। बना bitset 0100110 है।
लाइब्रेरी में इस कार्य को करने के लिए एक कंस्ट्रक्टर परिभाषित है -
bitset(str, offSet, size, zeroVal, oneVal);
यह एक कंस्ट्रक्टर है जो bitset बनाने के लिए परिभाषित है। आइए कंस्ट्रक्टर में गहराई से जाएं और जानें कि कंस्ट्रक्टर का प्रत्येक पैरामीटर क्या बताता है।
str - वह स्ट्रिंग जिसे bitset बनाने के लिए माना जाना है।
offSet - स्ट्रिंग का स्ट्रिंग इंडेक्स।
size - बनाए जाने वाले bitset का आकार।
zeroVal - स्ट्रिंग का वह मान जिसे 0 माना जाएगा
oneVal - स्ट्रिंग का वह मान जिसे 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. Bitset को स्ट्रिंग में परिवर्तित करें - Bitset में, एक bitset को स्ट्रिंग में परिवर्तित करने के लिए एक फंक्शन है। फंक्शन to_string() का उपयोग bitset के मानों को स्ट्रिंग में संग्रहीत करने के लिए किया जाता है। स्ट्रिंग की लंबाई bitset की लंबाई के समान होती है।
bitset के तत्वों को स्ट्रिंग में संग्रहीत करने का क्रम bitset के क्रम के समान होता है यानी bitset का पहला तत्व स्ट्रिंग का पहला तत्व।
01010100 का स्ट्रिंग रूपांतरण "01010100" है।
आप पैरामीटर सूची में निर्दिष्ट करके 0 और 1 को किसी भी अक्षर से बदल सकते हैं। यह केवल वही है जो हमने bitset के निर्माण के दौरान सीखा था उसका उल्टा।
उदाहरण
#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
Bitset पर कई अन्य ऑपरेशन किए जाते हैं। कुछ बिट ऑपरेटर भी हैं जिनका उपयोग किया जा सकता है। ये bitset के बुनियादी फंक्शन और गुण हैं जिनकी यहां चर्चा की गई है।