有读者问了这么一个问题:大小端与编译器和操作系统有关吗? 其实大小端主要由CPU决定,与编译器、操作系统这些没有直接关系。 因为我以前学习的时候,有很长一段时间也是存在这样的疑问。我觉得应该还有很多人都没搞明白,所以,今天来分享一下相关内容。 一、关于大小端 大小端也可以理解为字节顺序,或者端序、尾序,也就是你们看到的大端序(Big-Endian)、小端序(Little-Endian)。 关于大小端的解释网上很多教程,也不难理解。 大端模式:是指数据的高字节保存在内存的低地址中; 小端模式:是指数据的高字节保存在内存的高地址中; #include <stdio.h> #include <stdlib.h> int main() { short int x;//两个字节 char x0,x1; x=0x1122; x0=((char*)&x)[0]; //低地址单元 x1=((char*)&x)[1]; //高地址单元 printf("%x",x0); return 0; } 如果x0=11是大端,x0=22是小端 |
|