Hallo Forum, hat von euch jemand eine Idee wie ich zwei 4 Bit Variablen zu einer 8 Bit Variable zusammenfassen kann? Also nicht addieren sonder das die ersten 4 Bit die Werte von a haben und die zweiten 4 Bit die Werte von b haben. In etwa so a hat 4Bit b hat 4Bit c hat 8Bit c = a & b; Gruß Brun
c = ((a<<4) & 0xf0) + (b & 0x0f); Wenn sichergestellt ist, dass die restlichen Bits von a und b immer 0 sind, geht es auch etwas einfacher: c = (a<<4) + b;
Hast du doch schon fast gemacht:
1 | a = 0xA; |
2 | b = 0x5; |
3 | c = (a << 4) | b; |
Zur Sicherheit vielleicht sowas:
1 | a = 0xA; |
2 | b = 0x5; |
3 | c = ((0xF & a) << 4) | (0xF & b ); |
Danke, funktioniert. a und b sind beide wirklich nur 4Bit breit.
> a und b sind beide wirklich nur 4Bit breit.
Aber nicht in C, C kennt keine Datentypen, die weniger als 8 Bit breit
sind. Auch das in neueren C-Dialekten eingeführte bool ist nicht
kleiner.
Und wie sieht es damit aus? struct { unsigned a:4; unsigned b:4; } temp; Das sollten doch zwei 4Bit Variablen sein die in einer 8Bit zusammengefasst sind. Oder?
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.