Hallo,
ich versende Daten via serieller Schnittstelle und muss daher alles in byte Arrays umrechnen, komm damit aber nicht so wirklich klar.
Habe auf der einen Seite:
Das klappt soweit, das Array beinhaltet -127 und 4 für 0x0481 was 1153 entspricht.
Nach dem Versenden fehlt mir aber die Idee wie ich daraus wieder ein Short bekomme. Hab es mit dem ByteBuffer probiert:
Da fliegt dann aber eine Exception mit dem Inhalt "null".
Mir fehlt da bei Java irgendwie das Verständnis, da wird es irgendwo nicht passen bzgl. BE oder LE oder auch signed und unsigend. Wie kriege ich das denn wieder vernünftig zurück in ein short ? Kann auch ein Integer sein.
Viele Grüße
ich versende Daten via serieller Schnittstelle und muss daher alles in byte Arrays umrechnen, komm damit aber nicht so wirklich klar.
Habe auf der einen Seite:
Java:
short length = 1153;
byte[] message = new byte[2];
message[0] = (byte)(length & 0xFF);
message[1] = (byte)((length >> 8) & 0xFF);
Das klappt soweit, das Array beinhaltet -127 und 4 für 0x0481 was 1153 entspricht.
Nach dem Versenden fehlt mir aber die Idee wie ich daraus wieder ein Short bekomme. Hab es mit dem ByteBuffer probiert:
Java:
ByteBuffer bb = ByteBuffer.allocate(2);
bb.put(message[0]);
bb.put(message[1]);
short length = bb.getShort();
Da fliegt dann aber eine Exception mit dem Inhalt "null".
Mir fehlt da bei Java irgendwie das Verständnis, da wird es irgendwo nicht passen bzgl. BE oder LE oder auch signed und unsigend. Wie kriege ich das denn wieder vernünftig zurück in ein short ? Kann auch ein Integer sein.
Viele Grüße