2010-05-12 5 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

불행하게도, octhex에 가깝다 더 std::bin 조작이 없습니다. bitset 개체를 통한 필터링은 이진 형식의 숫자를 입력하고 출력하는 데 선호되는 방법입니다.

+0

Dang. 고마워, 크리스토. 바이너리 데이터의 예측 구문 분석을 위해 istringstream의 비트 지향 아날로그 인 ibitstream을 작성했습니다. 나는 obitstream을 쓸 준비를하고 있었지만 ostringstream이 내가 원하는 것을 이미하지 않았는지 확인하고 싶었다. – plong

관련 문제