2016-03-21 8 views
-1

Ich habe eine Variable, die in 3 und 5 Bits unterteilt ist, und ich bin in der Lage, jeden Abschnitt, d. H a und b zu füllen.Druckfehler in Cout

unsigned char a:3,b:5; 

Wie kann ich die Werte der beiden Abschnitte einzeln drucken. Wenn nicht wie kann ich als Ganzes drucken.

cout << a << b ; 

Bitte helfen Sie mir.

+0

Warum funktioniert das, was Sie nicht getan haben? – Soren

+0

sein Drucken aber ein unbekanntes Zeichen wie eine kleine Box mit Bits innerhalb –

+1

'cout << (int) a << (int) b;'. Oder deklarieren Sie Ihre Variablen als "unsigned int" anstelle von "unsigned char". –

Antwort

0
union Value 
{ 
    unsigned char char_value; 
    struct BitValue 
    { 
     unsigned char three_bit:3; 
     unsigned char five_bit:5; 
    } bit_value; 
}; 

int main() 
{ 
    Value tmp; 
    tmp.char_value=207; 
    cout<<(unsigned int)tmp.bit_value.three_bit<<" "<<(unsigned int)tmp.bit_value.five_bit<<" "<<(unsigned int)tmp.char_value<<endl; 
    return 0; 
} 

Vielleicht ist dies die Antwort.

+0

Bitte versuchen Sie, die richtige Antwort zu geben, wenn Sie Zweifel an Ihrer Antwort auf die Frage haben, dann können Sie einen Kommentar hinterlassen. –