2010-05-12 4 views
3

Je viens de réaliser que l'on peut utiliser un bitet pour sortir des données binaires vers un flux en fonction de la taille (fixe) de l'ensemble de bits. Quelle est la méthode la moins syntaxique pour générer des données binaires dans un flux à l'aide d'intégrales?Sortie intégrée à ostringstream comme binaire?

Pour montrer ce que je veux dire, voici un programme et sa sortie. Je voudrais que la deuxième ligne de sortie de ce programme soit identique à la première ligne mais sans recourir à la technique utilisée pour sortir la troisième ligne.

int main() 
{ 
    ostringstream bsout, uout, xout; 
    bitset<32> bs (0x31323334); 
    unsigned u = 0x31323334; 

    bsout << bs; 
    cout << bsout.str() << endl; 

    uout << u; 
    cout << uout.str() << endl; 

    xout << bitset<32>(u); 
    cout << xout.str() << endl; 

    return 0; 
} 


00110001001100100011001100110100 
825373492 
00110001001100100011001100110100 

Répondre

2

Malheureusement, il n'y a pas de manipulation std::bin semblable à oct et hex. Le filtrage via un objet bitset est la méthode préférée pour l'entrée et la sortie de nombres au format binaire.

+0

Dang. Merci, Kristo. J'ai écrit ibitstream, un analogue orienté bits de istringstream, pour l'analyse prédictive de données binaires. Je me préparais à écrire obitstream mais je voulais m'assurer que ostringstream ne faisait pas déjà ce que je voulais. – plong

Questions connexes