1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. sk84fun, 07.06.2010 #1
    sk84fun

    sk84fun Threadstarter Neuer Benutzer

    Hallo!

    Habe eine kurze Frage, sie betrifft zwar eher Java, da ich aber auf Android entwickle, sollte Sie doch hier auch rein passen:

    Ich bekomme Daten in einen Bytearray (ByteStream) über Bluetooth, wobei jeweils 2 Byte zusammen eine Zahl ergeben (short).
    Die Byte die kommen sind aber unsigned und in Java sind ja alle Datentypen (byte, short, int, long) signed.
    Jetz mache ich folgende Umrechnung:

    int Test = (int) (((short)(temp[0] & 0x000000FF) <<8) | (short)(temp[1] & 0x000000FF));

    wobei temp[] eben ein Byte Array ist. Sollte doch so stimmen, oder weiß jemand ob das nicht stimmt?

    Ich habe nämlich jetzt ein wenig mit Werten herumgespielt, und wenn ich auf temp[0] und temp[1] jeweils -127 (dann sollten doch alle Bit gesetzt sein, also 11111111 11111111) schreibe, dann ist das Ergebnis: 33153 (Also 10000001 10000001), wenn ich allerdings -1 und -1 drauf schreibe (Sollte ja dann so aussehen 10000001 10000001)dann kommt als Ergebnis 65535 heraus (also 11111111 11111111).

    Warum ist das so, bzw. wie muss ich die Umrechnung sonst durchführen?
     
  2. Kranki, 07.06.2010 #2
    Kranki

    Kranki Ehrenmitglied

Die Seite wird geladen...
Ähnliche Themen Forum Datum
Kommunikation zwischen 2 Smartphones herstellen Android App Entwicklung 07.01.2017
Du betrachtest das Thema "2 Byte auf eine Short" im Forum "Android App Entwicklung",