2016-06-29 7 views
0

Hier ist mein Code:Typ Gießen beteiligt Bit-Vektor-Operationen

uint8_t data[3] = {u >> 16, u >> 8, u & 0xff }; 

u ist ursprünglich ein uint32_t.

Wie kann ich die rechte Seite als Uint8_t verwenden? Ich habe versucht, (uint8_t)(u >> 16) schreiben, aber dann bekomme ich eine Beschwerde, dass u>>16 nicht in den Bereich von uint8_t passt.

+0

Bitte sehen [fragen] und bieten eine [MCVE]. – Olaf

Antwort

1

Sie müssen jedes Element uint8_t würfen

uint8_t data[3] = {(uint8_t)(u >> 16), (uint8_t)(u >> 8), (uint8_t)(u & 0xff) }; 
+0

Ich habe das versucht, aber dann bekomme ich eine Beschwerde, dass 'u >> 16' nicht in den Bereich von' uint8_t' passt (Entschuldigung, es gab einen Tippfehler in der ursprünglichen Frage) –

+0

Welchen Compiler und welche Version verwendest du? – dbush

+0

Ich schreibe dies in Visual Studio Professional 2012 –