大小端与网络通讯
运行在同一台计算机上的进程相互通信时,一般不用考虑字节的顺序(字节序),字节序是一个处理器架构特性。
- 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中
- 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中
优缺点
大端模式优点:符号位在所表示的数据的内存的第一个字节中,便于快速判断数据的正负和大小
小端模式优点:
1. 内存的低地址处存放低字节,所以在强制转换数据时不需要调整字节的内容(注解:比如把int的4字节强制转换成short的2字节时,就直接把int数据存储的前两个字节给short就行,因为其前两个字节刚好就是最低的两个字节,符合转换逻辑);
2. CPU做数值运算时从内存中依顺序依次从低位到高位取数据进行运算,直到最后刷新最高位的符号位,这样的运算方式会更高效
TCP/IP采用大端字节序
由于不同的处理器可以配置成大端或者小端,使得不同主机之间的通信变得复杂。
为此,网络协议指定了字节序。TCP/IP协议栈采用大端字节序,所以应用程序有时需要再处理器的字节序与网络的字节序之间进行转换