Estoy trabajando en un programa de simulación de máquinas. Tengo un vector de bitsets para la memoria principal, así que puedo usar un puntero a este vector, pMemory-> en (i), para acceder a cualquier "palabra" específica. Realmente prefiero el diseño del vector de bitsets, y me estoy quedando con él (este programa se vence en ... aproximadamente 6 horas, eek!)¿Cuál es la práctica recomendada para la manipulación del conjunto de bits?
He estado teniendo algunos problemas tratando de descubrir cómo hacer entrar y salir conjuntos de bits de diferentes ubicaciones (registros simulados y otras ubicaciones de memoria, etc.), así que he leído algo sobre el uso de transmisiones. He llegado a esto:
#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;
}
Por lo tanto, esto funciona, y puedo adaptar esta técnica para adaptarse a mi programa.
Mis preguntas son, ¿es esta una buena idea? ¿Hay algo fundamental que me falta sobre el uso de los operadores bitset >> y < <? ¿Es realmente necesario hacer todas estas discusiones manuales?
Además, tangencialmente, ¿qué debo hacer al copiar un conjunto de bits de 12 bits en un conjunto de bits de 16 bits?
Gracias, stackoverflow! Esta es mi primera pregunta a esta comunidad después de mucho googleando. Aprecio las ideas de todos!
+1 para un programa de demostración de utilidad. –