Hi,
das macht man wohl über ein bitweises-AND, also in etwa so:
So erhälst du die 4 MSB in Byte1 und 4 LSB in Byte2. Selbstverständlich kannst du so beliebige Bits rauskopierenCode:Byte1 = Byte & 0xF0; Byte2 = Byte & 0x0F;
Gruß
Chris
Guten Tag,
ich Suche eine Möglichkeit nur Teile aus einem Byte zu lesen. Ich habe mich über den Befehl BitRead informiert.
Das Problem ist nun, wie kann man zum Beispiel die ersten 4 Bits aus einem Byte auslesen und daraus eine Zahl machen.
Jeweils 2 Zahlen in einem Byte. Erste Zahl Bit 1 bis 4 und zweite Zahl Bit 5 bis 8.
Rudi
Hi,
das macht man wohl über ein bitweises-AND, also in etwa so:
So erhälst du die 4 MSB in Byte1 und 4 LSB in Byte2. Selbstverständlich kannst du so beliebige Bits rauskopierenCode:Byte1 = Byte & 0xF0; Byte2 = Byte & 0x0F;
Gruß
Chris
Danke für die Antwort. Ich habe es jetzt geschafft.
Wenn ich diesen Code benutze gibt er mir zwei Zahlen aus. Jeweils 1110.Code:int Byte = 238; int Byte1; int Byte2; int Byte1V; void setup() { Serial.begin(9600); } void loop() { Byte1 = Byte & 0xF0; Byte2 = Byte & 0x0F; Byte1V = Byte1 >> 4; Serial.println(Byte1V, BIN); Serial.println(Byte2, BIN); delay(1000); }
Das war auch nur zum Testen. Ich habe die Zahl 238D genommen damit das gleiche ausgegeben wird.
Lesezeichen