Ich versuche, die Portnummer 9876 (oder 0x2694 in hex) in einer Zwei-Byte-Array darstellen:eine Zahl in einer Byte-Array (Java-Programmierung) Darstellen
class foo {
public static void main (String args[]) {
byte[] sendData = new byte[1];
sendData[0] = 0x26;
sendData[1] = 0x94;
}
}
Aber ich eine Warnung über mögliche bekommen Verlust an Präzision:
foo.java:5: possible loss of precision
found : int
required: byte
sendData[1] = 0x94;
^
1 error
Wie kann ich die Nummer 9876 in einem zwei-Byte-Array repräsentieren ohne Präzision zu verlieren?
HINWEIS: Ich wählte den Code von @ Björn als die richtige Antwort, aber der Code von @glowcoder funktioniert auch gut. Es ist nur ein anderer Ansatz für das gleiche Problem. Danke euch allen!
Beachten Sie, dass über den Draht zum Senden von Datenstrukturen Abflachung ist in der Regel mit einem Dataoutputstream (oder deren Unterklasse Object) erfolgt in Java. Keine Notwendigkeit, die Bitfiddling jedes Mal neu zu erfinden :-) – meriton
@meriton: und noch besser, verwenden Sie 'java.nio.ByteBuffer', die all dies tun können, nicht mit IOException beschäftigen und endianness zu kontrollieren. –