您的位置:首页 > 其它

大小端字节序

2015-08-29 10:45 260 查看
整合网上信息以及书上信息:

现代CPU的累加器一次都能至少装载4个字节,那么4字节在内存中的排列顺序将影响他被累加器装载成的整数的值。这就是字节序的问题。

机器的字节序分为大小端序两种字节序。大端字节序是指低地址存储高位信息,而高地址存储低位信息;小端字节序是指低地址存储低位信息,高地址存储高位信息。

PC一般采用小端字节序(栈不是),小端字节序的好处是,方便进行四则运算。

网络编程和服务器一般采用大端字节序,大端字节序的好处是,方便在低地址出就判断正负数。

判断机器字节序的方法有两种:

1,利用联合体

union{

short value;

char b;//如果不希望丢失字节,可以char b[sizeof(short)];

}test;

test.value=0x0102;

if(test.b==1) cout<<"big endian";//if(test.b[0]==1&&test.b[1]==2).....

else if(test.b==2) cout<<"little endian";

2,利用指针

int a=0x01020304;

char *p=(char *)&a;//强转会丢失字节

if(*p==1) cout<<"big endian";

else if(*p==4) cout<<"little endian";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: