Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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

<मजबूत>2. स्ट्रिंग से बिटसेट बनाना -यदि आपके पास एक स्ट्रिंग है जिसमें केवल दो प्रकार के मान हैं जो निर्माण के दौरान उपयोग किए जाते हैं। आप इस स्ट्रिंग को एक बिटसेट में बदल सकते हैं जो मानों को संबंधित 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++ स्ट्रिंग क्लास at() . का एक सिंहावलोकन है स्ट्रिंग से वर्णों के अनुक्रम तक पहुँचने के लिए कार्यक्षमता। आगामी खंड में, एक इच्छुक पाठक स्ट्रिंग क्लास प्रोग्रामिंग उदाहरणों के माध्यम से at() के हेरफेर की पूरी समझ प्राप्त कर सकता है। कार्य। स्ट्रिंग क्लास प्रोग्रामिंग श

  1. सी ++ में एक स्ट्रिंग को टोकन करना

    इस खंड में, हम देखेंगे कि C++ में स्ट्रिंग्स को कैसे टोकननाइज़ किया जाता है। सी में हम वर्ण सरणी के लिए strtok() फ़ंक्शन का उपयोग कर सकते हैं। यहां हमारे पास एक स्ट्रिंग क्लास है। अब हम देखेंगे कि उस स्ट्रिंग से कुछ सीमांकक का उपयोग करके स्ट्रिंग को कैसे काटा जाता है। C++ फीचर का उपयोग करने के लिए,

  1. सी ++ में एक स्ट्रिंग को टोकननाइज़ करें?

    पहला तरीका है, रिक्त स्थान से अलग किए गए शब्दों को पढ़ने के लिए एक स्ट्रिंगस्ट्रीम का उपयोग करना। यह थोड़ा सीमित है लेकिन यदि आप उचित जांच प्रदान करते हैं तो यह कार्य काफी अच्छी तरह से करता है। उदाहरण #include <vector> #include <string> #include <sstream> using namespace std; in