Re: Bytearray umwandeln in Zahl mit Vorzeichen Kategorie: Programmierung (von André H. - 8.02.2006 8:38) | ||
Als Antwort auf Re: Bytearray umwandeln in Zahl mit Vorzeichen von Felix W. - 2.02.2006 9:39 | ||
| ||
Hallo Felix, > Das Bytearray umfasst 8 Bytes, mein Wert steht in Array 0 bis 2 (24 Bit-Wert). > Die Reihenfolge ist LowByte - HighByte. > Weiterhin ist der Wert im Zweierkomplement codiert, d.h. mit Vorzeichen. Gut, das ist ein 24Bit-Long-Integer. Die CC2 kann nur einen 32Bit-Longinteger. Daher kann man die Zahl leider nicht einfach so zusammensetzen, sondern mu� für Negative Zahlen etwas mehr vorsehen: long wert; //Bit 7 bis 15=Vorzeichen, Bit 0 bis 6 Daten des High(est)-Byte: wert=((daten[2] and 0x80)!=0 shl 7) or (daten[2] and 0x7F); wert=(daten[1] shl 8) or daten[0] or (wert shl 16); Man kann das ganze leider nicht in eine Zeile schreiben, da der Standarddatentyp 16Bit-Integer ist. Darum mu� eine Long-Variable in der Berechnung beteiligt sein, damit alles auch als Longinteger behandelt wird. In der ersten Zeile wird daher alles als 16Bit-Integer behandelt. In der zweiten Zeile werden die Schiebeoperation von wert und die zweite or-Verknüpfung als Long behandelt. Der Rest als Integer. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |