D
DiscoStu
Gast
Hallo,
ich habe folgendes Problem. Ich habe eine Binäre Verbindung zu einem Server. Der Server schickt mir unter anderem einen short wert welche in zwei Bytes aufgeteilt ist.
Der Wert sieht z.B. so aus: -126 2 bin: = 10000010 10
| |
LSB MSB
Also die Zahl die ich rausbekommen will, sollte so dann aussehen: 1010000010
Damit ich diesen Wert nun umwandeln kann mache ich folgedes:
Also ich bekomme bei "i |= arr[0]" entwas anderes raus, weil arr[0] nicht zu 10000010, sonderrn zu "1111111111111111111111111111111111111111111111111111111110000010" konvertiert wird.
Um diese Problem zu lösen bräuchte ich wie in C vorzeichenlose Datentypen, doc wie mache ich diese in Java?
ich habe folgendes Problem. Ich habe eine Binäre Verbindung zu einem Server. Der Server schickt mir unter anderem einen short wert welche in zwei Bytes aufgeteilt ist.
Der Wert sieht z.B. so aus: -126 2 bin: = 10000010 10
| |
LSB MSB
Also die Zahl die ich rausbekommen will, sollte so dann aussehen: 1010000010
Damit ich diesen Wert nun umwandeln kann mache ich folgedes:
Code:
byte[] arr = new byte[2];
arr[0] = -126;
arr[1] = 2;
int i = arr[1];
i <<= 8; //i hat hiernach den wert 512, logisch
i |= arr[0]; //hier entsteht nun folgedes problem, der wert arr[0] wird zu einem vorzeichenbehafteten int konvertiert.
Also ich bekomme bei "i |= arr[0]" entwas anderes raus, weil arr[0] nicht zu 10000010, sonderrn zu "1111111111111111111111111111111111111111111111111111111110000010" konvertiert wird.
Um diese Problem zu lösen bräuchte ich wie in C vorzeichenlose Datentypen, doc wie mache ich diese in Java?