大端规则和小端规则
来源:互联网 发布:提前上班被开除 知乎 编辑:程序博客网 时间:2024/06/03 01:09
一个int型整数,一般情况下占4个字节。那么这4个字节在内存中是怎么排列的呢?低内存地址存放的是低位字节还是高位子节呢?这就涉及到大端规则和小端规则。
这是一个特别小特别基础的知识点,在大部分的日常开发中,我们并不需要理会大小端规则。但是当涉及到跨平台网络数据传输的时候,就需要考虑大小端规则了。
大端规则(Big-Endian)
将高位字节存储在低位地址,低位字节存储在高位地址,这种存储方式成为大端规则,也称为大端序。
以0xA1A2A3A4
为例,使用大端规则,内存排列如下:
小端规则(Little-Endian)
将低位字节存储在低位地址,高位字节存储在高位地址,这种存储方式成为小端规则,也称为小端序。
以0xA1A2A3A4
为例,使用小端规则,内存排列如下:
网络子节序
不同平台使用不同的子节序。为了保证网络传输的数据能够被所有平台正确读取,TCP网络传输统一采用大端规则。
如果你使用C/C++/Objective-C语言,有几个方法可以方便将本地子节序和网络子节序互相转换。
// 网络子节序 -> 本地子节序ntohs(x) // 转换short类型ntohl(x) // 转换long类型ntohll(x) // 转换long long类型// 本地子节序 -> 网络子节序htons(x) // 转换short类型htonl(x) // 转换long类型htonll(x) // 转换long long类型
Posted by 范杰(Jeffery Fan) · August 7th, 2016
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
0 0
- 大端规则和小端规则
- 测试你的机器是大端规则还是小端规则
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 小端和大端
- 大端和小端
- 大端和小端
- 大端和小端
- 大端和小端
- 众筹全栈-工欲善其事必先利其器
- GPIO struct
- iOS 打包测试
- 函数对象
- CSS隐藏元素的差异
- 大端规则和小端规则
- WebView的JavaScript与本地代码三种交互方式
- 微信wap开发---页面自适应大小
- 变形--原点 transform-origin
- 如何在div或者span中字体自动换行或者打点
- javascript简单理解js闭包
- 动画--过渡属性 transition-property
- CMake 使用方法
- CentOS安装glibc-2.14