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 | |
2 | |
3 | |
Zur Sicherheit vielleicht sowas:
1 | |
2 | |
3 | |
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?
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.