字节序
在同一台计算机上通信或不用考虑字节序,字节序是处理器架构的特性,用于指示像整数这样的大字节数据在计算机内部的存储方式,一般在网络通信中要考虑不同的处理器架构的不同存储方式造成数据值的改变,所以在网络通信中要将本地字节序转换为网络字节序再传送。TCP/IP栈使用大端字节序。
大端字节序:最大字节地址出现在最低有效字节上。
小端字节序:
最大字接地址出现在最高有效位上。
例如:要在计算机内存中存储一个32位整数0x12345678。
在大端(big-endian)处理器中:
计算机物理地址 0x6040 0x6041 0x6041 0x6041
内容 0x12 0x34 0x56 0x78
在小端(litter-endian)处理器中:
计算机物理地址 0x6040 0x6041 0x6041 0x6041
内容 0x78 0x56 0x34 0x12
如果将一个短字节数数据类型的指针指向一个长字节数数据类型的数据上,将会体会到不同的字节序所带来的差异。大多数的处理器是小端字节序,例如inter pentium inter core等都是小端存储,solaris10 系统对应的Sun SPARC 处理器用大端存储。