一直以為大小端針對的bit的順序,今天才知道:大小端的分度值是 byte,即每一個byte都是按照正常順序,但是byte組裝成一個int 或者是 long等時每個byte的擺放位置不同。
測試代碼:
public class BufferTest { @Test public static void main(String[] args) { ByteBuffer buffer= ByteBuffer.allocate(4); buffer.order(ByteOrder.BIG_ENDIAN); buffer.asIntBuffer().put(1); System.out.println(buffer.array()[3]); buffer.order(ByteOrder.LITTLE_ENDIAN); System.out.println(buffer.array()[3]); } }
也可以自己轉換:
public class BufferTest { @Test public static void main(String[] args) { ByteBuffer buffer= ByteBuffer.allocate(4); buffer.order(ByteOrder.BIG_ENDIAN); buffer.asIntBuffer().put(1); System.out.println(buffer.array()[3]); buffer.order(ByteOrder.LITTLE_ENDIAN); System.out.println(buffer.array()[3]); } }