14. januar 2010 - 17:47Der er
4 kommentarer og 1 løsning
Big-endian i Java (2)
Well, arne gav mig dette eksempel, hvor s er stringet der skal laves om til big-endian.
byte[] bbig = new byte[1000]; ByteBuffer bbbig = ByteBuffer.wrap(bbig); bbbig.order(ByteOrder.BIG_ENDIAN); for(int i = 0; i < s.length(); i++) { bbbig.putChar(s.charAt(i)); } for(int i = 0; i < bbbig.position(); i++) { System.out.printf(" %02X", bbig[i]); }
Det virkede dog ikke helt som den funktion jeg havde lavet i VB.NET.
Public Function toBigEndian(ByVal i As Integer) Dim abyt() As Byte = BitConverter.GetBytes(i) If BitConverter.IsLittleEndian Then Array.Reverse(abyt) End If Return abyt End Function
Mit spørgsmål er nu, kan en eller anden give mig et eksempel på, hvordan jeg laver en tilsvarende funktion i Java? Tak :-)
Hvis du bruger en socket i en protokol som er konsekvent network order (big endian), saa var det muligvis nemmest at wrappe din OutputStream og InputStream i en DataOutputStream og DataInputStream.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.