Я работаю над программой симуляции машины.У меня есть вектор наборов битов для основной памяти, так что я могу использовать указатель на этот вектор, pMemory-> at (i), чтобы получить доступ к любому конкретному «слову».Я действительно предпочитаю дизайн вектора битовых наборов, и я придерживаюсь его (эта программа должна ... через 6 часов, эй!)
У меня были некоторые проблемы при попыткеВыясните, как получать наборы битов из разных мест (симулированные регистры и другие области памяти и т. д.), поэтому я ознакомился с некоторыми вопросами об использовании потоков.Я придумал это:
#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;
}
Итак, это работает, и я могу адаптировать эту технику для своей программы.
Мои вопросы, это хорошая идея?Есть ли что-то фундаментальное, что я упускаю при использовании операторов bitset >> и <<?Действительно ли необходимо выполнять все эти ручные споры? </p>
Кроме того, что нужно делать при копировании 12-битного набора в 16-битный набор?Это мой первый вопрос к сообществу после много поиска в Google.Я ценю понимание каждого!