Forum: Compiler & IDEs Wie wandelt ich einen Integer in einzelne Bytes um?


von Kapitän Blei (Gast)


Lesenswert?

Hallo

Ich bin noch C Anfänger.

Ich möchte eine Zahl z.B. vom Typ Integer  in die einzelnen Byte
umwandeln damit ich sie über UART zurücksenden kann.

Z.B.

BYTE W1;
BYTE W2;
Int Wert;

Wert = 300;

Entspricht $12C

W1 = $2C = 44;
W2 = $01 =  1;

Wie mache ich das?

Gruss

Blei

von Marko B. (Gast)


Lesenswert?


von Timmo H. (masterfx)


Lesenswert?

Ganz schnell:
1
char W1;
2
char W2;
3
int Wert=0x5425;
4
5
W1 = Wert & 0xFF;
6
W2 = (Wert>>8);
Dann hast du in W1 das LSB und in W2 das MSB

von Der Albi (Gast)


Lesenswert?

Oder:

Großer_Typ Variable;
char* Bytes = (char*)(&Variable);
for (int i = 0; i < sizeof(Großer_Typ); i++)
 Send(Bytes[i]);

MFG(Wenns nicht geht, dann sry - ist ausm Kopf geschrieben.)

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.