Forum: Compiler & IDEs int in 2 chars


von Martin (Gast)


Lesenswert?

Hi

ich habe eine int variable
unsigned int pos

und möchte nun das upper und lower byte jeweils in eine eigene variable
bringen

also irgendwie so:

unsigned char poshi,poslo

poshi = hi(pos);
poslo = lo(pos);

wie kann ich das realisieren?

Danke für Tips

Martin

von Matthias (Gast)


Lesenswert?

Hi

war erst beulich hier:

unsigned int pos
unsigned char poshi,poslo

poshi = pos>>8;
poslo = pos&0xFF;

oder auch:

poshi = pos/256;
poslo = pos%256;

Das funktionert natürlich nur wenn int 16Bit groß ist und char 8 Bit.

Matthias

von Jörg Wunsch (Gast)


Lesenswert?

Alternative

union foo {
  uint16_t u;
  uint8_t b[2];
};
union foo somefoo;

...
somefoo.u = 12345;
... = somefoo.b[0];
... = somefoo.b[1];

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.