`
vaqeteart
  • 浏览: 304183 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

关于BigEndian和LittleEndian和MSB和LSB

阅读更多
BigEndian和LittleEndian
首先了解一些概念:
MSB(Most Significant Bit):高字节。
对于一个多字节的数据,高字节也就是它的高位(最低位应该是“个位”)。

LSB(Least Significant Bits)
对于一个多字节的数据,低字节也就是它的低位(最低位应该是“个位”)。
这里"B"是大写的表示字节,小写"b"表示位。

高地址和低地址:
对于内存的地址,从0x000000开始增加,也就是从低地址向高地址增加的过程。

BigEndian:指低地址存放最高有效字节(MSB)。又叫降序。
这里,是“正”序的体现符合我们的思维习惯。例如,我们写一个数字0x1234,从左向右写(高位->低位),那么在内存上也从小向大来存放(低->高),所以内存中看到的就依次是12 34.

LittleEndian:是低地址存放最低有效字节(LSB)。又叫开序。
这里,是“反”序的体现符合我们的思维习惯。例如,我们写一个数字0x1234,从左向右写(高位->低位),那么在内存上也从大向小来存放(高->低),所以内存中看到的就依次是34 12.
C/C 语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的程序则唯一采用big endian方式来存储数据.
所有网络协议也都是采用big endian的方式来传输数据的。所以有时我们也会把big endian方式称之为网络字节序。当两台采用不同字节序的主机通信时,在发送数据之前都必须经过字节序的转换成为网络字节序后再进行传输。ANSI C中提供了四个转换字节序的宏。

自己总结了两种记忆方式:除了前面说的那种,还有一个:
Endian就是“端”,内存的端确定的就是最开始的0地址(最低地址),所以BigEndian就是大的存在低地址。大的,当然就是最高位。LittleEndian类似.
分享到:
评论

相关推荐

    little endian和big endian的概念解释

    ### Little Endian 和 Big Endian 的概念解释 #### 一、基本定义 在计算机科学领域,数据存储的方式对于数据处理的效率以及程序的兼容性至关重要。其中,Little Endian 和 Big Endian 是两种常见的字节顺序(Byte ...

    Big Endian & Little Endian.pdf

    1. **Big Endian**:在Big Endian模式下,MSB被存放在最低地址处,LSB则存放在最高地址处。 2. **Little Endian**:相反地,在Little Endian模式下,LSB被存放在最低地址处,MSB则存放在最高地址处。 #### 三、实例...

    nohead big endian to little endian

    nohead data big endian to little endian

    VC ANSI环境下按行读取ANSI、UNICODE 、UNICODE big endian、UTF-8四种文本文件

    本资源摘要信息介绍了如何在VC ANSI环境下按行读取四种不同编码格式的文本文件,包括ANSI、UNICODE、UNICODE big endian和UTF-8。通过研究这四种编码方式的特点,设计了一个继承自CStdioFile类的扩展类CStdioFileEx...

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    2. Unicode:这是一个标准,定义了所有已知字符的唯一数字表示,分为Little Endian和Big Endian两种字节顺序。Little Endian先存储低字节,Big Endian则先存储高字节。 3. UTF-8:一种变长的Unicode编码,用1到4个...

    字节序、MSB、LSB.docx

    3. MSB(最高有效位)和LSB(最低有效位): MSB是二进制数字中最左边的位,拥有最高的权重。对于有符号数,MSB常用于表示符号,1表示负数,0表示正数。同时,MSB也可指代多字节序列中权重最大的字节。 LSB是二...

    大端(Big Endian)与小端(Little Endian)简介

    这些字节如何在内存中排列,涉及到两种主要的存储方式——大端(Big Endian)与小端(Little Endian)。本文将深入探讨这两种存储方式的概念、原理及其应用场景。 #### 二、大端与小端的定义 1. **大端表示法(Big...

    Little_Big_endian.rar_big endian_little

    标题“Little_Big_endian.rar_big endian_little”暗示了这个压缩包包含了关于大端和小端字节序的详细信息,可能是专门针对嵌入式系统开发者的指南或教程。 **大端字节序(Big-endian)**: 在大端字节序中,数据的...

    little endian,big endian 小端存储、大端存储.zip

    little endian,big endian 小端存储、大端存储.zip

    字符编码转换 Text、ANSI、Unicode、Unicode Big Endian、UTF-8、UTF-7

    本篇文章将深入探讨标题中提及的几种字符编码:Text、ANSI、Unicode(包括Little Endian和Big Endian)、UTF-8以及UTF-7,并介绍它们之间的转换。 1. **Text编码**: 在Windows系统中,通常所说的"Text"编码是指...

    大端(Big_Endian)与小端(Little_Endian)简介

    - **大端表示法**(Big Endian):在内存中,最高有效字节(MSB)位于最低地址处。 - **小端表示法**(Little Endian):在内存中,最低有效字节(LSB)位于最低地址处。 #### 五、实例说明 假设一个整数`0x...

    CStdioFileEx(支持ANSI、UNICODE、UNICODE big endian、UTF-8编码的文本读取

    (包括ANSI、UNICODE、UNICODE big endian、UTF-8)格式的文本文件 */ //核心算法:CStdioFileEx继承自CStdioFile, 覆盖CStdioFile的 BOOL ReadString(CString& rString)方法, // 根据不同文件编码特征,寻找文件...

    读取ANSI、Unicode、Unicode big endian、UTF-8、UTF8 Bom、UTF16-LE明码文件

    读取ANSI 明码文件 读取Unicode 明码文件 读取Unicode big endian 明码文件 读取UTF-8 明码文件 读取UTF8 Bom 明码文件 读取UTF16-LE 明码文件 读取UTF16-BE 明码文件 到多字节字符串 扩展类CFilePlainCode

    UnpluggedIbmBits:C#库,用于读取旧的IBM格式化的位,例如EBCDIC,big endian和浮点数

    包括IbmConverter类以及EBCDIC字符串,Big Endian Int16,Big Endian Int32和IBM System / 360单精度浮点格式的BinaryReader和BinaryWriter扩展。 欢迎发布。 请勿折叠,纺锤或切割。使用BinaryReader扩展方法的...

    查看字符串在不同编码.zip

    Unicode有两种字节顺序表示方式,即BigEndian和LittleEndian,分别称为UTF-16BE和UTF-16LE。 在实际开发中,理解和掌握这些编码方式至关重要,因为不正确的编码处理可能导致乱码问题。例如,当读取一个UTF-8编码的...

    byteorder:Rust库,用于按大端和小端读写数字

    像这样将其添加到您的Cargo.toml : [ dependencies ]byteorder = " 1 " 如果要增强现有的Read和Write特征,请导入扩展方法,如下所示: use byteorder :: {ReadBytesExt, WriteBytesExt, BigEndian, LittleEndian}...

    大端(Big Endian)与小端(Little Endian)简介.doc

    大端(Big Endian)与小端(Little Endian)是指计算机系统中多字节数据在内存中的存储方式。这个概念主要涉及到处理器架构和数据表示,对于跨平台编程和网络通信尤其重要。Endianness的问题源于不同的计算机系统...

    获知计算机大小端C++

    在计算机科学中,数据在内存中的存储方式有两种主要模式,即大端(BigEndian)和小端(LittleEndian)。这两种模式决定了多字节数据(如整数或浮点数)在内存中的字节顺序。大端模式是指最高有效字节位于最低地址,...

Global site tag (gtag.js) - Google Analytics