字节序大小端问题

首先简单的说,大部分80X86的cpu都是采用的“小端”存储,而网络字节序是“大端”。所以在c语言编程中网络传输的模块需要特别注意。而对于java编程,在JVM中都是采用的“大端”存储的和底层cpu没有关系。下面为了理解对大小端的含义进行了介绍。

对于字节序(大端法、小端法)的定义《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。

1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 
2.大端法(Big-Endian)就是高位字节排放在内存的低地址端即该值的起始地址,低位字节排放在内存的高地址端。

举个简单的例子,对于整形0x12345678。它在大端法和小端法的系统内中,分别如图1所示的方式存放。

字节序大小端问题_第1张图片

你可能感兴趣的:(java)