大端序和小端序简介

  • Post author:
  • Post category:其他


大端序和小端序

一:大端字节序和小端字节序

在不同的CPU上,一个DWORD、WORD等基本数据的各个字节在内存中存储的顺序可能不一样,分为两种大端字节序和小端字节序。

大端字节序,高字节存于内存低地址,低字节存于内存高地址;小端字节序反之。如一个long型数据0x12345678

大端字节序:

内存低地址–> 0x12

0x34

0x56

内存高地址–> 0x78


小端字节序:

内存低地址–> 0x78

0x56

0x34

内存高地址–> 0x12

二:大端序和小端序

采用大端序的CPU和采用小端序的CPU不仅在字节上是相反的,在比特位上也是相反的。

比如0x01在内存中的存储

大端序:内存低比特位 00000001 内存高比特位

小端序:内存低比特位 10000000 内存高比特位

比如0x00000001

大端序:内存低比特位 00000000 00000000 00000000 00000001 内存高比特位

小端序:内存低比特位 10000000 00000000 00000000 00000000 内存高比特位

这也是为什么我们定义位域的时候需要判断字节序。比如

struct exmpl{


#if 大端

BYTE  ver:4;

BYTE  len:4;

#else

BYTE len:4;

BYTE ver:4;



版权声明:本文为janhway2008原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。