在学习过程中遇见的一个小知识。
主机字节序又称为CPU字节序,不由操作系统决定,而是由CPU指令集架构决定。主要分为两种:
1、大端字节序:高序字节存储在低位地址,低序字节存储在高位地址
2、小端字节序:高序字节存储在高位地址,低序字节存储在低位地址
以32位整数0x12345678为例,假设存放的起始地址从0x00开始
在大端系统中,存放如下
内存地址 0x00 0x01 0x02 0x03
数据 12 34 56 78
在小端系统中
内存地址 0x00 0x01 0x02 0x03
数据 78 56 34 12
利用C程序检验
#include<iostream>
using namespace std;
int main(){
int i=0x12345678;
if(*((char*)&i)==0x12)
cout<<"Big"<<endl;
else
cout<<"small"<<endl;
return 0;
}
实验所用CPU位x86架构,小端系统。