理解字节序
来源:互联网 发布:qq旋风网络链接错误 编辑:程序博客网 时间:2024/06/03 19:15
1、什么是字节序
举个例子: uint32_t value = 0x44332211;
buf[4] = {0};
memcpy(buf,&value,sizeof(uint32));
那么 ,buf中的值是什么?
在小端序列的主机中,buf[0] = 0x11, buf[1] = 0x22, buf[2] = 0x33, buf[3] = 0x44
小端序列比较符合思维,地位放在低地址,高位放在高地址
在大端序列的主机中,buf[0] = 0x44,buf[1] = 0x33, buf[2] = 0x22, buf[3] = 0x11
大端序列 比较符合直观,人类一般是高位先写(低地址),地位后写(高地址)。
2、为什么会有两种字节序?
可能有些人主张思维优先(小端序列)、有人主张直观优先(大端序列),就好比争论鸡蛋应该是从小端敲还是大端敲。
还有一种解释是,计算机电路先处理低位字节,效率比较高,因为计算都是从低位开始的。所以,计算机的内部处理都是小端字节序。但是,人类还是习惯读写大端字节序。所以,除了计算机的内部处理,其他的场合几乎都是大端字节序,比如网络传输和文件储存。
一般PC主机都是小端序,所以小端序也称为主机序; 大端序也称为网络序
3、什么时候需要注意字节序
传输字节流的时候需要注意字节序。因为不同主机的字节序有可能不一样,需要在传输的时候约定好。
传输的一方,都要把数值字节流从本机序转换成网络序
接收的一方,都要把数值字节流从网络序转换成本机序
阅读全文
0 0
- 字节序理解
- 理解字节序
- 理解字节序
- 理解字节序
- 理解字节序
- 理解字节序
- 理解字节序
- 网络字节序之理解
- TODO:字节序的一些理解
- 两个例子理解主机字节序和网络字节序,不同平台字节序转换
- 顶级c程序员之路 选学篇-1 深入理解字节,字节序与字节对齐
- 理解字节长度
- 深入理解字节对齐
- 字节对齐 理解
- 字节码内容理解
- 字节码内容理解
- 字节的理解
- 理解java字节码
- springBoot学习之全局错误捕获
- 动态规划——二项式系数
- 聊一聊深度学习的weight initialization
- c++中的string常用函数用法总结
- Vue+SpringMVC---前后端分离极简尝试
- 理解字节序
- Android8.0 Oreo -- 谷歌官方api介绍
- springmvc返回值
- 一对多和多对一中各个参数的说明
- 9月13日 Python生物信息学数据管理
- Ambari界面Presto重启报错ERROR:presto_client:Error connecting to presto server at: localhost:8285
- 15. 3Sum(求数组中和为0的3个数)
- 第二周——项目三(2)—体验复杂度-汉诺塔
- 【Linux系列】【基础版】认识Linux,以及安装登录CentOS 【20170913】