大小端重新简单理解
对于同一片内存数据,用CPU用大端模式读写和小端模式的区别:
union Test{
char content[4];
int num;
};
Test test = {'W','A', 'V', 'E'};//'57', '41', '56', '45' 内存分布
printf("%d\n", test.num);//打印 0x 45 56 41 57 小端
//test[0] -> test[1] -> test[2] -> test[3] 地址增高
//在大端模式中,高地址放低位字节,低地址放高位字节。
//在小端模式中,低地址放低位字节,高地址放高位字节。
//采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。
Test test = 1;
//从内存(高低地址)分布映射到值(高低字节)
人的理解方式;大端 0x00 00 00 01
即 test.content[3] = 1,则为大端
小端机器相反: 0x01 00 00 00
test.content[0] = 1
反过来说, 数字1, 从数值映射到内存分布
在大端中内存分布时 0x00 00 00 01
在小端中内存分布时 0x01 00 00 00
首先,大小端是对字节的排放顺序,不是对位。
对数据处理时,只是进行数值运算,不牵扯到内存分布时,不所谓大小端。
一般:
PC上是小端。
网络是大端。

浙公网安备 33010602011771号