主机字节序又叫CPU字节序,分为大端和小端
大端字节序,就是高字节序的存在低位地址,低字节序存在高位地址
小端字节序,就是高字节序存在高位地址,低字节序存在低位地址
例子:
0x12是高位字节,大端会放在低地址上如0x00
可以看出数据的高位是越前面越高,内存地址的高位是越后面越高。
数据0x12345678 高字节->低字节
内存地址 0x00 0x01 0x02 0x03 低地址->高地址
网络字节序采用大端排序方式而主机一般采用小端
原因:网络协议规定接收到得第一个字节是高字节,存放到低地址,所以发送时会首先去低地址取数据的高字节。(高字节放到低地址比较符合逻辑顺序)
面试的话可以这么说,tcp发送是按照字节流发送,因此一般取数据都是从高字节位上开始取,而存储一般指针都是在低地址上,因此采用大端比