I have to make a two way communication between a legacy system and an android device. The legacy system uses little endian byte ordering. I have successfully implemented the receiving part, however sending not works.
Strange because for me it seems that the ByteBuffer class malfunctions (I can hardly believe that)
ByteBuffer byteBuffer = ByteBuffer.allocate(4);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
byteBuffer = ByteBuffer.allocate(4);
byteBuffer.putInt(88);
byte[] result = byteBuffer.array();
Results: [0, 0, 0, 88]
ByteBuffer byteBuffer = ByteBuffer.allocate(4);
byteBuffer.order(ByteOrder.BIG_ENDIAN);
byteBuffer = ByteBuffer.allocate(4);
byteBuffer.putInt(88);
byte[] result = byteBuffer.array();
Also results the same: [0, 0, 0, 88]
However if I'm not mistaken little endian ordering should return: [88, 0, 0, 0]
So what's the point I'm missing?
ByteBuffer.order
makes the change globally, affecting allByteBuffer
s? – Pironi