比如说ASCII值为0x45(01000101),那么在内存中的表现形式,是否是在小尾字节系统中就是10100010,而在大尾字节系统中就是01000101??
------解决方案--------------------
一个字节一般为基本数据单位,在big 或small 端系统里,其内容都一样,即bit位的数据都一样。只有在大于一个字节的数据时大小端系统里其数据顺序有区别。比如0x12345678,32bit数据在小端系统中为0x78,0x56,0x34,0x12(地址从小到大排序),在大端系统中为0x12,0x34,0x56,0x78(地址从小到大排序)
------解决方案--------------------
比如说ASCII值为0x45(01000101),那么在内存中的表现形式,无论大尾字节系统还是小尾字节系统中都是01000101(bit7~bit0)。
------解决方案--------------------
小端格式 :字数据的低字节存储在低地址中,而字数据的高字节存储在高地址中
大端格式 :字数据的低字节存储在高地址中,而字数据的高字节存储在低地址中
系统的大小端格式可以通过编写简单测试程序知道,例如LINUX系统就是小端格式,下面代码的输出是22,21
#include <stdio.h>
int main()
{
short int a=0x1122;
char x0,x1;
x0=((char*)&a)[0];
x1=((char*)&a)[1];
printf("%0x\n",x0);
printf("%0x\n",x1);
return 0;
}