Sto lavorando a un programma di simulazione macchina. Ho un vettore di bitset per la memoria principale, in modo che possa usare un puntatore a questo vettore, pMemory-> at (i), per accedere a qualsiasi "parola" specifica. Preferisco davvero il design del vettore di bitset, e lo sto rispettando (questo programma è previsto in ... circa 6 ore, eek!)Qual è la pratica consigliata per la manipolazione di bitset?
Ho avuto qualche problema nel tentativo di capire come ottenere bitset dentro e fuori da posizioni diverse (registri simulati e altre posizioni di memoria, ecc.), quindi ho letto alcuni sull'utilizzo degli stream. Ho inventato questo:
#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;
}
Quindi, questo funziona e posso adattare questa tecnica per adattarla al mio programma.
Le mie domande sono, è una buona idea? C'è qualcosa di fondamentale che mi manca nell'usare gli operatori bitset >> e < <? È davvero necessario fare tutto questo litigi manuale?
Inoltre, in senso tangenziale, cosa devo fare quando si copia un bitet a 12 bit in un set di bit a 16 bit?
Grazie, stackoverflow! Questa è la mia prima domanda a questa comunità dopo molto googling. Apprezzo le intuizioni di tutti!
+1 per un programma dimostrativo utile. –