设为首页 加入收藏

TOP

C语言网络编程之--字节顺序
2014-11-24 08:12:40 来源: 作者: 【 】 浏览:0
Tags:语言 网络编程 字节 顺序

字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,各个数据类型在内存中的字节长度可以用sizeof(类型关键字)获得。那么字符是如何存放到内存中的呢?

计算机存储字符有两种顺序:高位字节优先和地位字节优先。那如何理解“高位”字节和“地位”字节呢?我们来看一个数值0x1234在内存的存储方式:


由于一个内存地址是1个字节的大小,即地址1、地址2、地址3、地址4的大小都是1个字节。假设数值0x1234中的“1”、“2”、“3”、“4”字符都占用一个字节的长度,那么就有如下存储顺序:


低位字节优先:假设申请到的地址的编号是从1--4这样编号的,于是,地址1就是低位字节,地址4就是高位字节。根据低位字节优先存储的顺序,数值0x1234中的字符“1”就先进入地址1,然后字符“2”就进入地址2……最后地址4接收最后一个字符“4”。


高位字节优先:假设申请到的地址编号是从1--4这样编号的,于是,地址1是低位字节,地址4是高位字节。高位字节优先就是先存满高位字节再考虑低位字节。数值0x1234中的字符“1”就先进入地址4,然后字符“2”就进入地址3……最后,地址1接收最后一个字符“4”。


一般来说,Internet上的数据使用的是高位字节优先,基于x86的PC机上的数据是低位字节优先。所以,使用了基于x86上的数据要通过Internet传输,就要将数据转换成高位字节优先的顺序。有时候,高位字节优先顺序也称为网络字节顺序,低位字节优先顺序也称为主机字节顺序。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用shell脚本实现USB设备的加载.. 下一篇Python 中字符串大小写转换

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·“我用Java 8”已成 (2025-12-26 11:19:54)
·下载 IntelliJ IDEA (2025-12-26 11:19:52)
·Java是什么?(通俗 (2025-12-26 11:19:49)
·雾里看花:真正意义 (2025-12-26 10:54:36)
·C++——模板(超详细 (2025-12-26 10:54:34)