在做DICOM图像格式转换工作时,遇到了Little endian和Big endian两种字节在内存中的排放顺序问题,将它们的区别总结一下。
Little endian和Big endian表示计算机字节顺序的两种格式,所谓的字节顺序指的是长度跨越多个字节的数据的存放形式.
假设从地址0x00000000开始的一个字节中保存有数据0x1234abcd(字节高位到低位),那么在两种不同的内存顺序的机器上从字节的角度去看的话分别表示为:
假设机器是每个内存单元以8位即一个字节为单位的:
little endian在内存中的存放顺序是,little endian把低字节存放在内存的低位:
0x00000000 0xcd
0x00000001 0xab
0x00000002 0x34
0x00000003 0x12
big endian在内存中的存放顺序是,big endian将低字节存放在内存的高位:
0x00000000 0x12
0x00000001 0x34
0x00000002 0xab
0x00000003 0xcd