大小端模式出现是为了兼容不同CPU采用的不同的指令集。
PowerPC架构和x86架构采用的是不同的CPU指令集。PowerPC采用精简指令集(RISC,reduced instruction set computer),x86指的是特定微处理器执行的一些计算机语言指令集。
PowerPC :大端模式
x86:小端模式
大小端中的大小指的是地址空间中地址的高低,大对应高地址。而端指的是存储数据的字节顺序的尾端,例如一个十六进制数据是0x12345678,可以看出这个数据需要4个字节来存储,字节顺序应该分别为 12 34 56 78,可以看出78为当前数据字节序的尾端。
所以大端模式就是把字节序的尾端放在高地址位置,而小端模式则是把字节序的尾端放在低地址位。
优缺点:
大端模式中地址的变化顺序(低到高)与数据的阅读顺序(高位到低位,如12345678我们会从高位开始读,即从左到右)想吻合。所以当沿着地址空间找到某个数据内存的时候,我们首先就可以根据他的内容的第一个字节来判断正负。
小端模式的优点:强制类型转化,如int(4字节)转化成short(2字节),直接可以取出前面的低位两字节。另一优点是CPU计算是从数据的低位到高位计算,效率高。所以当CPU从地址的低位到高位移动的时候,正好数据也是从地位到高位变化,计算高效。