`
Sweblish
  • 浏览: 100990 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基本的字节序

c 
阅读更多
基本的字节序 

http://zh.wikipedia.org/wiki/%E5%AD%97%E8%8A%82%E5%BA%8F

对于单一的字节(a byte),大部分处理器以相同的顺序处理位元(bit),因此单字节的存放方法和传输方式一般相同。

对于多字节数据,如整数(32位机中一般占4字节),在不同的处理器的存放方式主要有两种,以内存中0x0A0B0C0D的存放方式为例,分别有以下几种方式:

    注: 0x前缀代表十六进制。

[编辑]大端序

大端序(英:big-endian)或稱大尾序。
Big-Endian.svg

    数据以8bit为单位:

地址增长方向  →
... 0x0A 0x0B 0x0C 0x0D ...

示例中,最高有效位(MSB, Most Significant Byte)是0x0A 存储在最低的内存地址处。下一个字节0x0B存在后面的地址处。正类似于十六进制字节从左到右的阅读顺序。

    数据以16bit为单位:

地址增长方向  →
... 0x0A0B 0x0C0D ...

最高的16bit单元0x0A0B存储在低位。
[编辑]小端序

小端序(英:little-endian)或稱小尾序。
Little-Endian.svg

    数据以8bit为单位:

地址增长方向  →
... 0x0D 0x0C 0x0B 0x0A ...

最低有效位(LSB,Least Significant Byte)是0x0D 存储在最低的内存地址处。后面字节依次存在后面的地址处。

    数据以16bit为单位:

地址增长方向  →
... 0x0C0D 0x0A0B ...

最低的16bit单元0x0C0D存储在低位。

    更改地址的增长方向:

当更改地址的增长方向,使之由右至左时,表格更具有可阅读性。
←  地址增长方向
... 0x0A 0x0B 0x0C 0x0D ...

最低有效位(LSB)是0x0D 存储在最低的内存地址处。后面字节依次存在后面的地址处。
←  地址增长方向
... 0x0A0B 0x0C0D ...

最低的16bit单元0x0C0D存储在低位
分享到:
评论

相关推荐

    c++和python如何实现主机字节序和网络字节序的相互转换

    在上一篇文章网络编程:主机字节序和网络字节序中,介绍了主机字节序和网络字节序的基本概念以及在实际的编程中,何时需要进行网络字节序和主机字节序的转换。本篇文章着重介绍使用c++和python语言,如何实现主机...

    Socket开发资料

    主机字节序和网络字节序 主机字节序即内存中存储字节的方法有: 1. Little endian:将低序字节存储在起始地址 2. Big endian:将高序字节存储在起始地址 网络字序表示网络协议在处理多字节时的顺序,一律为big ...

    linux系统网络编程基本知识总结

    内容丰富,从网络基本模型,数据的封装与解包,域名解析,大小端字节序,到socket编程,更有诸多源代码,可供深入研究。

    Protocol Buffers协议编码规则

    Protocol Buffers之所以...3.Varints方法用Litte-Endian(小端)字节序(低位字节排放在内存的低地址端,高位字节排放在内存的高地址端)。 示例,300用Varints序列化的结果是1010 1100 0000 0010,解码过程如下所示 ...

    linux网络编程-宋敬彬-part1

    8.1.1 大端字节序和小端字节序 210 8.1.2 字节序转换函数 212 8.1.3 一个字节序转换的例子 214 8.2 字符串IP地址和二进制IP地址的转换 217 8.2.1 inet_xxx()函数 217 8.2.2 inet_pton()和inet_ntop()函数 ...

    glib-2.12.11.zip

    包括基本类型及限制的定义、标准宏、类型转化、字节序、存储分配、警告和断言、消息记录、计时器、字符串工具、hook函数、句法扫描器、动态加载模块和字符串自动补全,同时也提供了许多数据类型及相关操作。...

    glib-2.12.11.tar.gz

    包括基本类型及限制的定义、标准宏、类型转化、字节序、存储分配、警告和断言、消息记录、计时器、字符串工具、hook函数、句法扫描器、动态加载模块和字符串自动补全,同时也提供了许多数据类型及相关操作。...

    binbloom:原始二进制固件分析软件

    字节序:binbloom可以使用启发式方法来确定固件的字节序。 UDS数据库:binbloom可以解析原始二进制固件,并检查其是否包含包含UDS命令ID的数组。下载/安装首先,克隆git仓库: git clone ...

    string-test.rar_labview中string

    程序中包含在labview中进行字符串基本操作的演示。其中有字符串交换、翻转、交换字节序、截取字符串等操作。

    chp2 linux.rar

    LINUX下数据处理  ANSI C与GNU C  C语言的基本数据类型  变量的定义、作用域、链接属性及存储方式  常量的定义方式  预处理  字长和数据类型  数据对齐  字节序

    java深度历险

    序 1 目录 2 JAVA字节代码的操纵 4 动态编译JAVA源文件 4 JAVA字节代码增强 6 JAVALANGINSTRUMENT 8 总结 9 参考资料 10 JAVA类的加载、链接和初始化 11 JAVA类的加载 11 JAVA类的链接 12 JAVA类的初始化 13 创建...

    smarty4j (Java模板引擎) v1.0.0.rar

    smarty4j将文本解析成语法树,...语法树的生成采用左序遍历的方式依次生成,大致的语法结点包含语句与表达式两大基本类型,语句结点能保证JVM的语句栈在执行完毕后没有新压入的数据,而表达式结点将产生一个数据。

    smarty4j (Java模板引擎) v1.0.0

    smarty4j将文本解析成语法树,然后...语法树的生成采用左序遍历的方式依次生成,大致的语法结点包含语句与表达式两大基本类型,语句结点能保证JVM的语句栈在执行完毕后没有新压入的数据,而表达式结点将产生一个数据。

    jibniz:IBNIZ VM的定制javascript实现

    吉布尼兹 jibniz是的自定义javascript实现。 可以在上找到一个微型演示。 运行测试(现在不推荐使用) yarn install ... 修复字节序黑客。 音频的基本支持。 “智能”模式检测。 编译T和TYX模式的代码版本。

    Zero-Allocation-Hashing:Java的零分配哈希

    该实现在可能的情况下利用本机访问,但与平台字节序无关。 无论字节顺序如何,这都将提供一致的结果,而只会适度地影响性能。 目前long -valued散列函数接口对64位的散列,并限定long[]超过64位散列-valued散列函数...

    protocool:二进制协议处理库

    这里的函数是“包装”一个 Java 未合并的 netty 缓冲区protoc00l 流包含原始字节序列及其字节序此命名空间提供创建流和读写数据的功能Protoc00l 序列两个设备按照协议交换信息。 协议定义了可能的令牌集加上序列在...

    linux网络编程

    什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_...

    BinaryGen:使用JetBrains MPS生成二进制文件和文本文件

    BinaryGen ...各种宽度,字节序和有符号性的整数 字符串,字节数组等。 副本和条件构造 可重用的二进制生成组件 计划功能 更愉快的编辑体验 预览生成的文件 开关盒构造 if-else构造 位域支持 已知错误 MP

    C++教程网《Linux网络编程》视频百度云地址

    字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户 /服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-...

    2018年C++教程网的linux网络编程视频共41集百度云下载链接.rar

    字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection...

Global site tag (gtag.js) - Google Analytics