我必须在遗留系统和Android设备之间进行双向通信。 传统系统使用小端字节排序。 我已经成功实现了接收部分,但发送不起作用。ByteBuffer Little Endian插入不工作
奇怪,因为对我来说似乎ByteBuffer类故障(我很难相信)
ByteBuffer byteBuffer = ByteBuffer.allocate(4);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
byteBuffer = ByteBuffer.allocate(4);
byteBuffer.putInt(88);
byte[] result = byteBuffer.array();
结果: [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();
也导致相同: [0,0,0,88]
但是,如果我没有弄错little end排序应返回: [88,0 ,0,0]
那么我错过了什么?
也许OP有一个误解,认为'ByteBuffer.order'全局改变了,影响了所有'ByteBuffer's? –
我不敢相信,但我没有看到它。 第二次初始化不是故意的。 我需要睡一会儿。 无论如何感谢, – Sandor
通过Eclipse在Android 4.2.2测试的输出中得到相同结果'[88,0,0,0] [88,0,0,0]'的原因是什么? ?? – GoRoS