Union 4x8 Bit = 32 Bit

Gast #4041790
Lesenswert?
• ▲
▼
Hallo,

es ist vermutlich eine Anfängerfrage, aber trotzdem...

Ich habe ein Union der Form:
1
union convert
2
    {
3
    UINT8 Bytes[4];
4
    UINT32 Value;
5
    }convertVar;

Weiterhin habe ich ein unsigned char tabx[4];
der Form:
1
unsigned char tabx[4];
2
tabx[0]=0x00;
3
tabx[1]=0x01;
4
tabx[2]=0x02;
5
tabx[3]=0x00;

Über
1
unsigned int X;
2
convertVar.Bytes[0] = tabx[0];
3
convertVar.Bytes[1] = tabx[1];
4
convertVar.Bytes[2] = tabx[2];
5
convertVar.Bytes[3] = tabx[3];
6
X = convertVar.Value;

Ich würde erwarten, dass X jetzt gleich 120 ist. Dies ist aber mit 
nichten der Fall.

Wo ist hier der vermutlich dumme Denkfehler?
#4041817
Lesenswert?
• ▲
▼
mila schrieb:

> Ich würde erwarten, dass X jetzt gleich 120 ist.

Wieso würdest du das erwarten?

> Dies ist aber mit
> nichten der Fall.
>
> Wo ist hier der vermutlich dumme Denkfehler?

Das 'Text'darstellung und Binärdarstellung 2 verschiedene Paar Schuhe 
sind.

Du versuchst dem µC dein Dezimalsystem aufs Aug zu drücken. Das kümmert 
den aber nicht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.