wie cast uint8_t-array von 4 auf uint32_t in c

Ich versuche zu casten ein array von uint8_t auf ein array uint32_t, aber es scheint nicht zu funktionieren.

Kann einer mir helfen auf diese. Ich brauche, um uint8_t Werte uint32_t.

Ich kann dies mit der Verschiebung, aber ich denke, es gibt eine einfache Möglichkeit.

uint32_t *v4full;
v4full=( uint32_t *)v4;
while (*v4full) {
    if (*v4full & 1)
        printf("1");
    else
        printf("0");

    *v4full >>= 1;
}
printf("\n");
  • Können Sie zeigen den Bau des Quell-Arrays?
  • sorry, habe ich korrigiert-Typ-Fehler. Quell-array-Konstruktion in4_pton(token,-1,&v4,-1,&c); dieser wandelt eine Zeichenkette in eine ip-Adresse und legen Sie es in der v4-array
  • Okay. Nicht werfen die Zeiger in einer solchen Art und Weise das Programm denkt, es ist der Blick auf einen 32-bit-Wort. Wenn Sie brauchen, um die Arbeit mit int, iterate über die original-Vektor, der die 8-bit-bytes, und weisen Sie dann das byte auf eine einfache int variable; z.B., für (int n=0; n < 4; n++) { int i = (int)v4[n]; ...}, es sei denn, Sie wollen den gesamten Vektor als kombinierte 32-bit-Wort...
  • Nur um zu klären: können wir denken, dass der v4 als uint8_t v4[4], und Sie wollen, dass Sie als ein einzelnes 32-bit-Zahl?
InformationsquelleAutor user2714949 | 2013-11-30
Schreibe einen Kommentar