note: from baidu search
小知识:字节顺序
很少有人关心字节顺序(Byte Ordering),因为它真的很少用到。何为字节顺序呢?让我们先来看一个例子,假设现在有一个WORD类型的变量,它的值为0x7788,那么它在内存中是怎么存放的呢?
内存中:
低地址 高地址
| 0x77 | 0x88 |
高地址 低地址
| 0x77 | 0x88 |
图3.7 两种字节顺序
事实上,对于不同的CPU、不同的操作系统,图3.7中的两种字节顺序都是可能的。如果像图3.7左边那样:高字节在前,低字节在后,则这种字节顺序称作为big-endian;如果像图3.7右边那样:低字节在前,高字节在后,则这种字节顺序称作为little-endian。
表3.1 常见的CPU、操作系统上使用的字节顺序
CPU 操作系统 字节顺序
x86 (Intel、AMD等) 所有 little-endian

字节顺序分为big-endian和little-endian,网络传输通常采用big-endian。在跨平台网络编程中,发送端需使用htonl或htons将数据转为网络字节顺序,接收端用ntohl或ntohs转回。IsLittleEndian函数可判断本机字节顺序,UNetwork类提供获取主机信息和Socket错误跟踪功能。
最低0.47元/天 解锁文章
9603

被折叠的 条评论
为什么被折叠?



