PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bytes nur zum Teil auslesen



BEADG
19.10.2013, 11:12
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. :confused:
Jeweils 2 Zahlen in einem Byte. Erste Zahl Bit 1 bis 4 und zweite Zahl Bit 5 bis 8.

Rudi

Che Guevara
19.10.2013, 13:13
Hi,

das macht man wohl über ein bitweises-AND, also in etwa so:


Byte1 = Byte & 0xF0;
Byte2 = Byte & 0x0F;

So erhälst du die 4 MSB in Byte1 und 4 LSB in Byte2. Selbstverständlich kannst du so beliebige Bits rauskopieren ;)

Gruß
Chris

BEADG
23.10.2013, 12:11
Danke für die Antwort. Ich habe es jetzt geschafft. :)



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);

}


Wenn ich diesen Code benutze gibt er mir zwei Zahlen aus. Jeweils 1110.

Peter(TOO)
23.10.2013, 13:35
Hallo,


Wenn ich diesen Code benutze gibt er mir zwei Zahlen aus. Jeweils 1110.

238D ist auch ne doofe Zahl = 1110 1110B

Versuch es mal mit 90D = 0101 1010B

MfG Peter(TOO)

BEADG
23.10.2013, 15:00
Das war auch nur zum Testen. Ich habe die Zahl 238D genommen damit das gleiche ausgegeben wird.