Hallo, ich hab mal eine Frage, und zwar habe ich eine 16Bit Variable. Ich möchte diese jetzt in 2x8 Bit aufteilen also Binär sprich die Binärzahl ist z.B. Var0="0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0" jetzt möchte ich aber gerne 2 Variablen haben mit jeweils 8Bit also: Var1="0 0 0 0 0 1 1 1" Var2="0 1 1 0 0 1 1 0" wie kann ich das am geschicktesten anstellen in C?? Gruß Björn
@-bjoern- >Hallo, ich hab mal eine Frage, und zwar habe ich eine 16Bit Variable. >Ich möchte diese jetzt in 2x8 Bit aufteilen also Binär Die sind schon aufgeteilt, du musst nur zugreifen. uint16_t var_16; uint8_t var_a, var_b; var_a = var_16 & 0xFF; // high byte var_b = var_16 >> 8; // low byte MfG Falk P.S. Man kanns auch mit ner UNION machen, da bin ich aber nicht ganz fit.
>wie kann ich das am geschicktesten anstellen in C??
Var1 = (unsigend char) (Var0>>8);
Var2 = (unsigend char) Var0;
Sowas dürfte sich in jedem C-Bch finden.
1 | union
|
2 | {
|
3 | unsigned int Wert16; |
4 | unsigned char Wert8[2]; |
5 | }
|
In Wert16 steht der Gesamtwert, in Wert8[0] und Wert8[1] die beiden Einzelbytes...
// AT90USB/macros.h // S. Salewski 29-JAN-2007 #ifndef MACROS_H #define MACROS_H #define MSB(w) ((char*) &w)[1] #define LSB(w) ((char*) &w)[0] #endif
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.