2010-05-12 4 views
3

Я просто понял, что можно использовать битовый набор для вывода двоичных данных в поток на основе (фиксированного) размера битового набора. Каков минимально-дополнительный синтаксический способ вывода двоичных данных в поток с использованием интегралов?Выходной интеграл для ostringstream как двоичный?

Чтобы показать, что я имею в виду, вот программа и ее выход. Я бы хотел, чтобы вторая строка вывода этой программы была идентична первой строке, но не прибегая к методу, используемому для вывода третьей строки.

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 

ответ

2

К сожалению, нет std::bin манипулятора сродни oct и hex. Фильтрация через объект bitset является предпочтительным методом ввода и вывода двоично-форматированных чисел.

+0

Dang. Спасибо, Кристо. Я написал ibitstream, бит-ориентированный аналог istringstream, для интеллектуального анализа двоичных данных. Я собирался писать obitstream, но хотел убедиться, что ostringstream уже не делает того, что я хотел. – plong