大端小端存储区别一看即懂!!

字节排序按分为大端和小端,概念如下

大端(big endian):低地址存放高有效字节。数据的第一个字节先存。

小端(little endian):低字节存放地有效字节

1.大端和小端的方式及判断

举个例子说明,我的机子是32位windows的系统,处理器是AMD的。对于一个int型数0x12345678,为方便说明,这里采用16进制表示。这个数在不同字节顺序存储的CPU中储存顺序如下:
LSB的意思是:全称为Least Significant Bit,在二进制数中意为最低有效位,一般来说,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。

MSB的意思是:全称为Most Significant Bit,在二进制数中属于最高有效位,MSB是最高加权位,与十进制数字中最左边的一位类似。

0x12345678   16进制,两个数就是一字节  数据的第一个字节是12(MSB)

高有效字节——>低有效字节: 12 34 56 78

          低地址位     高低址位

大端:  12  34        56   78

小端: 78  56        34   12

大端小端存储区别一看即懂!!

复制代码
#include<stdio.h>

int main(void ){
   unsigned int x =0x12345678;
   unsigned char *p = (unsigned char *)&x;
   printf("%0x %0x %0x %0x",p[0],p[1],p[2],p[3]);
   return 0;
}

上一篇:qt十进制十六进制字符串转整形数


下一篇:Win10如何设置护眼色