Forum: Compiler & IDEs 3 bytes in einen Datentyp


von Timmy (Gast)


Lesenswert?

Hallo,
wie kann ich eine 24 bitige Zahl aus 3 Bytes in einen Datentyp packen.
Ich denke ich brauche einen Long dafür oder?
Kenn mich noch nciht so aus. Geht doch bestimmt über bit-schiebereien?

Mfg Timmy

von OldBug (Gast)


Lesenswert?

Hi!

int32_t Zahl;

void
beispiel(void)
{
  Zahl = ((int32_t)(byte[0] << 16)) + ((int32_t)(byte[1] << 8)) +
byte[2];
}

Sollte so funktionieren ;)

Gruß,
Patrick...

von Stefan Kleinwort (Gast)


Lesenswert?

Suche mal hier im gcc-Forum nach "union". Damit geht das, was Du
willst (wenn ich Dich richtig verstanden habe).

Stefan

von Timmy (Gast)


Lesenswert?

Ne OldBug lag schon richtig so.
Ich hab drei Byte die eine große Zahl repräsentieren. Diese soll nun am
Computer zu einem "Long" zusammengesetzt werden und ausgegeben
werden.

von OldBug (Gast)


Lesenswert?

Stefan hat aber auch recht  ;)

union
{
  int32_t Zahl;
  char byte[4];
} u;

Solte auch gehen, wenn ich da jetzt keinen Type eingebaut habe...

Gruß,
Patrick...

von Stefan Kleinwort (Gast)


Lesenswert?

@Patrick:

ja, so in etwa ... war selber nur zu faul zum hinschreiben ;-))

Stefan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.