मैं एक मशीन सिमुलेशन प्रोग्राम पर काम कर रहा हूं। मुझे मुख्य मेमोरी के लिए बिट्ससेट का वेक्टर मिला है, ताकि मैं किसी भी विशिष्ट "शब्द" तक पहुंचने के लिए इस वेक्टर, pMemory-> (i) पर पॉइंटर का उपयोग कर सकूं। मैं वास्तव में वेक्टर-ऑफ-बिसेट्स डिज़ाइन को प्राथमिकता देता हूं, और मैं इसके साथ चिपक रहा हूं (इस कार्यक्रम में ... लगभग 6 घंटे, eek!)बिट्ससेट हेरफेर के लिए अभ्यास की सिफारिश की जाती है?
मुझे पता लगाने में कुछ परेशानी हो रही है अलग-अलग स्थानों में और बाहर बिट्स कैसे प्राप्त करें (अनुरूपित रजिस्टरों और अन्य मेमोरी स्थानों, आदि), इसलिए मैंने स्ट्रीम का उपयोग करने पर कुछ पढ़ा है। मैं इसके साथ आया हूं:
#include <bitset>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
/** demonstrating use of stringstream to/from bitset **/
{
bitset<12> sourceBits(std::string("011010010100"));
bitset<12> targetBits(0);
stringstream iBits(stringstream::in | stringstream::out);
iBits << sourceBits.to_string();
cout << targetBits << endl;
iBits >> targetBits;
cout << targetBits << endl;
} //end stringstream to/from bitset
return 0;
}
तो, यह काम करता है, और मैं इस कार्यक्रम को अपने कार्यक्रम में फिट करने के लिए अनुकूलित कर सकता हूं।
मेरे सवालों का, कर रहे हैं यह एक अच्छा विचार है? क्या बिट्ससेट >> और < < ऑपरेटरों का उपयोग करने के बारे में कुछ मौलिक है? क्या यह वास्तव में इस मैनुअल wrangling करने के लिए आवश्यक है?
इसके अलावा, स्पर्शरेखीय, मैं क्या जब एक 16-बिट bitset में एक 12 बिट bitset को कॉपी करना चाहिए?
धन्यवाद, stackoverflow! के बाद गूगलिंग के बाद यह मेरा पहला प्रश्न है। मैं हर किसी की अंतर्दृष्टि की सराहना करता हूं!
एक उपयोगी प्रदर्शन कार्यक्रम के लिए +1। –