T
Tho82
Gast
Hallo,
ich habe eine Verbindung mit sehr wenig Bandbreite. Ich würde gerne per Socket/ServerSocket Daten übertragen. Da ich allerdings recht viele Informationen übertragen muss, will ich an jedem Bit, welches übertragen werden soll, sparen. Ich will z.B. folgendes übertragen:
100;2;XYZ;333.33333
Die Zahl 100 kann ich ja beispielsweise mit einem Byte Darstellen (0,0,1,0,0,1,1,0).
Die Zahl 2 ebenso mit einem Byte (0,1,0,0,0,0,0,0).
XYZ wird mit "XYZ".getBytes() in Bytes umgewandelt. DAnn habe ich hier 3 Bytes.
333.33333 ist ein Doublewert. Dieser hat in Java meines Wissens nach eine Größe von 64 Bits.
Hier meine Fragen:
Wie wandel ich diesen Doublewert in Bytes um, damit ich den auch per Bytestream versenden kann? Gibts dafür eine Methode oder muss ich den Doublewert in einen String umwandeln und den String dann wiederum mit der Methode getBytes() in Byte umwandeln, was jedoch die Byte-Größe wieder vergrößern wurde (9*8 Bytes = 72 Bits anstatt 64 wie beim Doublewert)?
Gibt es auch die Möglichkeit, Bitweise über Sockel Daten zu versenden? D.H. wenn ich z.B. einen Wertebereich habe von 0-100 dann reichen mir ja 7 Bit um diese Zahl darzustellen?!? Andersrum gefragt: Wenn ich eine Zahl wie 10000 darstellen muss in Bits, wie wird das gemacht, denn 1 Byte kann ja nur Zahlen bis max 255 darstellen?
Vielen Dank für eure Hilfe.
ich habe eine Verbindung mit sehr wenig Bandbreite. Ich würde gerne per Socket/ServerSocket Daten übertragen. Da ich allerdings recht viele Informationen übertragen muss, will ich an jedem Bit, welches übertragen werden soll, sparen. Ich will z.B. folgendes übertragen:
100;2;XYZ;333.33333
Die Zahl 100 kann ich ja beispielsweise mit einem Byte Darstellen (0,0,1,0,0,1,1,0).
Die Zahl 2 ebenso mit einem Byte (0,1,0,0,0,0,0,0).
XYZ wird mit "XYZ".getBytes() in Bytes umgewandelt. DAnn habe ich hier 3 Bytes.
333.33333 ist ein Doublewert. Dieser hat in Java meines Wissens nach eine Größe von 64 Bits.
Hier meine Fragen:
Wie wandel ich diesen Doublewert in Bytes um, damit ich den auch per Bytestream versenden kann? Gibts dafür eine Methode oder muss ich den Doublewert in einen String umwandeln und den String dann wiederum mit der Methode getBytes() in Byte umwandeln, was jedoch die Byte-Größe wieder vergrößern wurde (9*8 Bytes = 72 Bits anstatt 64 wie beim Doublewert)?
Gibt es auch die Möglichkeit, Bitweise über Sockel Daten zu versenden? D.H. wenn ich z.B. einen Wertebereich habe von 0-100 dann reichen mir ja 7 Bit um diese Zahl darzustellen?!? Andersrum gefragt: Wenn ich eine Zahl wie 10000 darstellen muss in Bits, wie wird das gemacht, denn 1 Byte kann ja nur Zahlen bis max 255 darstellen?
Vielen Dank für eure Hilfe.