本文目录
- 《国际专利分类法》的体系结构
- Motorola lsb计算方法
- 不同体系结构的处理器有big endian和little endian 模式,哪位能告诉我两者之间的区别
- SPI通信四大模式
- Big Endian 和 Little Endian的区别
- 什么是MSB/LSB码
- Big Endian与Little Endian字节存储顺序
- 如何用c语言输出地址的内容,如下所示:
- エンディアン
《国际专利分类法》的体系结构
国际专利分类表 1.根据1971年签署的《斯特拉斯堡协定》,“国际专利分类”,可简写成Int.cl,并且加在根据该专利分类法分类的专利文献的分类号前面。由于所用的分类法版本不同, 故在Int.cl右上角加上一个阿拉伯数字表示版本号。 2.分类体系:部、大类、小类、组八个部:1.A部:生活需要2.B部:作业;运输3.C部:化学;冶金 4.D部:纺织;造纸 5.E部:固定建筑物6.F部:机械工程;照明;加热;武器;爆破 7.G部:物理 8.H部:电学 每个部的类名后有一个该部下面主要细分类目的概要,部下还可有分部,但无类号。3.《大类:由二位数字组成。例如:A01,农业;林业;畜牧业;打猎;诱捕;捕鱼 4.小类:由一个大写字母组成。例如:A01B,农业或林业的整地;一般的农业用机械或工具的部件、零件或附件。5.组:每个小类细分成许多组,包括大组和小组。每个组的类号由小类类号加上用“/”分开的二个数组成。 6.大组: 由小类类号加上一个一位到三位的数及“/00”组成。例如:A01B1/00,手动工具7.小组: 由小类类号加上一个一位到三位的数,后跟一个“/”符号,再加上除00以外的二位数组成。例如:A01B1/16,除杂草根的工具
Motorola lsb计算方法
计算方法如下:LSB算法的基本原理:对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。因此LSB算法最初是用于脆弱性水印的。LSB算法基本步骤:1、将原始载体图像的空域像素值由十进制转换成二进制;2、用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位;3、将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像。
不同体系结构的处理器有big endian和little endian 模式,哪位能告诉我两者之间的区别
Big Endian 和 Little Endian powerpc 发表于 2005-5-5 15:25:00 谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是 little endian呢? 其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。 用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:Big Endian 低地址 高地址 -----------------------------------------》 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 12 | 34 | 56 | 78 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Little Endian 低地址 高地址 -----------------------------------------》 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 78 | 56 | 34 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 从上面两图可以看出,采用big endian方式存储数据是符合我们人类的思维习惯的。而little endian,!@#$%^&*,见鬼去吧 -_-||| 为什么要注意字节序的问题呢?你可能这么问。当然,如果你写的程序只在单机环境下面运行,并且不和别人的程序打交道,那么你完全可以忽略字节序的存在。但是,如果你的程序要跟别人的程序产生交互呢?在这里我想说说两种语言。C/C++语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而 JAVA编写的程序则唯一采用big endian方式来存储数据。试想,如果你用C/C++语言在x86平台下编写的程序跟别人的JAVA程序互通时会产生什么结果?就拿上面的0x12345678来说,你的程序传递给别人的一个数据,将指向0x12345678的指针传给了JAVA程序,由于JAVA 采取big endian方式存储数据,很自然的它会将你的数据翻译为0x78563412。什么?竟然变成另外一个数字了?是的,就是这种后果。因此,在你的C程序传给JAVA程序之前有必要进行字节序的转换工作。 无独有偶,所有网络协议也都是采用big endian的方式来传输数据的。所以有时我们也会把big endian方式称之为网络字节序。当两台采用不同字节序的主机通信时,在发送数据之前都必须经过字节序的转换成为网络字节序后再进行传输。ANSI C中提供了下面四个转换字节序的宏。·BE和LE一文的补完我在8月9号的《Big Endian和Little Endian》一文中谈了字节序的问题,原文见上面的超级链接。可是有朋友仍然会问,CPU存储一个字节的数据时其字节内的8个比特之间的顺序是否也有big endian和little endian之分?或者说是否有比特序的不同? 实际上,这个比特序是同样存在的。下面以数字0xB4(10110100)用图加以说明。 Big Endian msb lsb ----------------------------------------------》 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Little Endian lsb msb ----------------------------------------------》 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+实际上,由于CPU存储数据操作的最小单位是一个字节,其内部的比特序是什么样对我们的程序来说是一个黑盒子。也就是说,你给我一个指向0xB4这个数的指针,对于big endian方式的CPU来说,它是从左往右依次读取这个数的8个比特;而对于little endian方式的CPU来说,则正好相反,是从右往左依次读取这个数的8个比特。而我们的程序通过这个指针访问后得到的数就是0xB4,字节内部的比特序对于程序来说是不可见的,其实这点对于单机上的字节序来说也是一样的。 那可能有人又会问,如果是网络传输呢?会不会出问题?是不是也要通过什么函数转换一下比特序?嗯,这个问题提得很好。假设little endian方式的CPU要传给big endian方式CPU一个字节的话,其本身在传输之前会在本地就读出这个8比特的数,然后再按照网络字节序的顺序来传输这8个比特,这样的话到了接收端不会出现任何问题。而假如要传输一个32比特的数的话,由于这个数在littel endian方存储时占了4个字节,而网络传输是以字节为单位进行的,little endian方的CPU读出第一个字节后发送,实际上这个字节是原数的LSB,到了接收方反倒成了MSB从而发生混乱。
SPI通信四大模式
SPI是由Motorola公司提出的一种同步串行外围接口;它在速度要求不高,低功耗,需要保存少量参数的智能化传感系统中得到了广泛应用; SPI是一个全双工的同步串行接口,在数据传输过程中,总线上只能是一个主机和一个从机进行通信; 通信四种模式: 1、MISO(Master In Slave Out) 主机输入,从机输出; 2、MOSI(Master Out Slave In) 主机输出,从机输入; 3、SCK(Serial Clock) 串行时钟信号 4、SS(Slave Select) 从机选择信号,低电平有效;(即作从机时,该位置低) SPI总线可在软件的控制下构成各种系统 SPI总线与多从机连接 SPI的基本结构相当于两个8位移位寄存器的首尾相接,构成16位的环形移位寄存器,从而实现了主机与从机的数据交换; SPI接口的基本结构图 SPI主从模式 设置MSTR(主设备选择)和SPE位(使能位)来选择是否工作在主模式还是从模式; stm32强大之处:因为从机NSS位必须接0,而主机NSS位接1;stm32可以有软件来设置相应的主从位; SPI下时钟信号的相位和极性(设置由与之通信的具体芯片来设定) SPI接口可由CPOL和CPHA设定4种不同传输格式的时序; CPOL决定时钟脉冲SCK的有效脉冲方式(正脉冲、负脉冲)。CPHA决定数据线MOSI什么时候输出数据或采集数据; 根据CPOL和CPHA的组合数目,一共四种设置情况; 数据图分析: 数据帧的格式 根据SPI_CR1寄存器中的LSBFIRST位,输出数据位时可以MSB(高位先传)在先也可以是LSB(低位先传),根据SPI_CR1寄存器的DFF位,每个数据帧可以是8位或者16位,所选择的数据帧格式对发送/接收都有效; SPI通信配置步骤:(在主模式下,串行时钟在SCK脚产生) 1、通过SPI_CR1寄存器的BR位定义串行时钟波特率; 2、选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系; 3、设置DFF位来定义8/16位数据帧格式; 4、配置SPI_CR1寄存器的LSBFIRST位定义帧格式; 5、如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间应把NSS脚连接到高电平;在软件模式中,需要设置SPI_CR1寄存器的SSM和SSI位,如果NSS引脚工作在输出模式,则只需设置SSOE位; 6、必须设置MSTR和SPE位(只当NSS被连到高电平,这些位才能保存置位)。 在这个配置中,MOSI脚是数据输出,而MISO脚是数据输入; SPI通信过程: stm32之SPI通信视频资料 http://www.makeru.com.cn/live/3523_1795.html?s=156461
Big Endian 和 Little Endian的区别
Big Endian 和 Little Endian的区别:在设计计算机系统的时候,有两种处理内存中数据的方法。一种叫为little-endian,存放在内存中最低位的数值是来自数据的最右边部分(也就是数据的最低位部分)。比如一个16进制数字0x12345678,在内存存放的方式如下:低地址 ------------------》 高地址 ####################################################值 #0111,1000 #0101,0110 # 0011,0100 # 0001,0010 # ####################################################地址 # 100 # 101 # 102 # 103 # #################################################### 另一种称为big-endian,正好相反,存放在内存中最低位的数值是来自数据的最左边边部分(也就是数据的最高为部分)。 比如一个16进制数字0x12345678,在内存存放的方式如下:低地址 ------------------》 高地址 #################################################### 值 # 0001,0010 #0011,0100 # 0101,0110 # 0111,1000 # ####################################################地址 # 100 # 101 # 102 # 103 # ####################################################从上面的例子可以看到,采用big endian方式存储数据是符合我们人类的思维习惯的big endian:是指低地址存放最高有效字节(MSB:Most Significant Byte, 最高有效字节),little endian:则是低地址存放最低有效字节(LSB:Least Significant Byte, 最低有效字节)谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。IBM, Motorola(Power PC), Sun的机器一般采用大端(big endian)方式存储数据。而x86系列则采用little endian方式存储数据是Little Endian还是Big Endian与操作系统和芯片类型都有关系。 具体情形参考处理器手册。2. 如何判断系统是Big Endian还是Little Endian在/usr/include/中(包括子目录)查找字符串BYTE_ORDER(或_BYTE_ORDER, __BYTE_ORDER),确定其值。这个值一般在endian.h或machine/endian.h文件中可以找到,有时在feature.h中,不同的操作系统可能有所不同。一般来说,Little Endian系统BYTE_ORDER(或_BYTE_ORDER,__BYTE_ORDER)为1234,Big Endian系统为4321
什么是MSB/LSB码
MSB是Most Significant Bit的缩写,指最高有效位。在二进制数中,MSB是最高加权位。与十进制数字中最左边的一位类似。通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。
LSB是Linux Standards Base的缩写,是一套核心标准,它保证了LINUX发行版同LINUX应用程序之间的良好结合。
【拓展资料】
关于有效位
一、最低有效位
1、定义:LSB,英文 least significant bit,中文义最低有效位。
对于一个给定的数据串(整数),如二进制的1001或者十进制351,其最低有效位就是拥有最小单位数值的那一位。比如二进制1001的最右一位,拥有数值1,在该整数中代表最低位,该位的值可以决定整数是奇数(为1)还是偶数(为0)。十进制数同理。
一般lsb就是一个整数的最右一位,所以似乎该概念有些多余。但是凡事都有例外,某些数据传输或是处理器恰恰相反,最左一位是lsb,所以在计算领域就定义了这个最低有效位以明确说明数据格式。
2、意义:
(LSB: Least Significant Byte)最低有效字节。
其意义和lsb类似,只是扩展到整个字节,以字节为最小单位来说明数据的顺序。
msb(most significant bit),即最高有效位,是一个整数数位中权重最高的那个,当然有时候该位也用作符号位,0为正,1为负,视编码标准而定。
MSB为最高有效字节,意义类似于LSB。
二、最高有效位
1、定义:(MSB)
指二进制中最高值的比特。在16比特的数字音频中,其第1个比特便对16bit的字的数值有最大的影响。例如,在十进制的15,389这一数字中,相当于万数那1行(1)的数字便对数值的影响最大。比较与之相反的“最低有效位”(LSB)。
2、详细介绍
当选择模数转换器(ADC)时,最低有效位(LSB)这一参数的含义是什么?有位工程师告诉我某某生产商的某款12位转换器只有7个可用位。也就是说,所谓12位的转换器实际上只有7位。他的结论是根据器件的失调误差和增益误差参数得出的,这两个参数的最大值如下:
失调误差 =±3LSB,
增益误差 =±5LSB,
乍一看,觉得他似乎是对的。从上面列出的参数可知最差的技术参数是增益误差(±5 LSB)。进行简单的数学运算,12位减去5位分辨率等于7位,对吗?果真如此的话,ADC生产商为何还要推出这样的器件呢?增益误差参数似乎表明只要购买成本更低的8位转换器就可以了,但看起来这又有点不对劲了。正如您所判断的,上面的说法是错误的。
让我们重新来看一下LSB的定义。考虑一个12位串行转换器,它会输出由1或0组成的12位数串。通常,转换器首先送出的是最高有效位(MSB)(即LSB + 11)。有些转换器也会先送出LSB。在下面的讨论中,我们假设先送出的是MSB(如图1所示),然后依次送出MSB-1 (即 LSB + 10)和MSB -2(即LSB + 9)并依次类推。转换器最终送出MSB -11(即LSB)作为位串的末位。
LSB这一术语有着特定的含义,它表示的是数字流中的最后一位,也表示组成满量程输入范围的最小单位。对于12位转换器来说,LSB的值相当于模拟信号满量程输入范围除以2^12 或 4,096的商。如果用真实的数字来表示的话,对于满量程输入范围为4.096V的情况,一个12位转换器对应的LSB大小为1mV。但是,将LSB定义为4096个可能编码中的一个编码对于我们的理解是有好处的。
让我们回到开头的技术指标,并将其转换到满量程输入范围为4.096V的12位转换器中:
失调误差 = ±3LSB =±3mV,
增益误差 =±5LSB = ±5mV,
这些技术参数表明转换器转换过程引入的误差最大仅为8mV(或 8个编码)。这绝不是说误差发生在转换器输出位流的LSB、LSB-1、LSB-2、LSB-3、LSB-4、LSB-5、LSB-6和 LSB-7 八个位上,而是表示误差最大是一个LSB的八倍(或8mV)。
准确地说,转换器的传递函数可能造成在4,096个编码中相差最多8个编码。例如,误差为+8LSB ((+3LSB失调误差) + (+5LSB增益误差)) 的一个12位转换器可能输出的编码范围为0 至 4,095,实际的有效编码为4096/8 ,即2^9=512个。这个例子给出的都是最坏情况。在实际的转换器中,失调误差和增益误差很少会如此接近最大值。
3、实际应用
在实际应用中,由于ADC失调或增益参数的改进而使性能提升的程度微不足道,甚至可以忽略。但是,对于那些将精度作为一项设计目标的设计人员来说,这种 假设太过绝对。利用固件设计可以很容易地实现数字校准算法。但更重要的是,电路的前端放大/信号调理部分通常会产生比转换器本身更大的误差。
通过上面的讨论可以对本文开头提到的错误结论有一个更为全面而清晰的认识。事实上,上述的12位转换器的精度约为11.997位。采用微处理器或单片机可以利用简单的校准算法消除这种失调和增益误差,这对设计人员来说无疑是个好消息。
Big Endian与Little Endian字节存储顺序
不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序。分为小端格式和大端格式(Little-Endian&Big-Endian):
比如0x1234; 低8位是34,高8位是12;如果它们分配的内存其实地址是0x0001, 那么如果是大端存储,那么0x0001内存低位地址存放高位字节12;如果是小端存储,那么0x0001内存低位地址存放低位字节34,0x0002存放12。
据Jargon File记载,endian这个词来源于Jonathan Swift在1726年写的讽刺小说 “Gulliver’s Travels“(《格利佛游记》)。该小说在描述Gulliver畅游小人国时碰到了如下的一个场景。在小人国里的小人因为非常小(身高6英寸)所以总是碰到一些意想不到的问题。有一次因为对水煮蛋该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开的争论而引发了一场战争,并形成了两支截然对立的队伍:支持从大的一端剥开的人Swift就称作Big-Endians,而支持从小的一端剥开的人就称作Little-Endians......(后缀ian表明的就是支持某种观点的人)。
1980年,Danny Cohen在其著名的论文“On Holy Wars and a Plea for Peace“中为了平息一场关于在消息中字节该以什么样的顺序进行传送的争论而引用了该词。该文中,Cohen非常形象贴切地把支持从一个消息序列的最高位开始传送的那伙人叫做Big-Endians,支持从最低位开始传送的相对应地叫做Little-Endians。此后Endian这个词便随着这篇论文而被广为采用。
little endian和big endian是表示计算机字节顺序的两种格式,所谓的字节顺序指的是长度跨越多个字节的数据的存放形式.
假设从地址0x00000000开始的一个字中保存有数据0x1234abcd,那么在两种不同的内存顺序的机器上从字节的角度去看的话分别表示为:
需要特别说明的是,以上假设机器是每个内存单元以8位即一个字节为单位的. 简单的说,little endian把低字节存放在内存的低位;而big endian将低字节存放在内存的高位.
现在主流的CPU,intel系列的是采用的little endian的格式存放数据,而motorola系列的CPU采用的是big endian.
比如: int x, 它的地址为0x100。 那么它占据了内存中的Ox100, 0x101, 0x102, 0x103这四个字节(32位系统,所以int占用4个字节)。
上面只是内存字节组织的一种情况: 多字节对象在内存中的组织有一般有两种约定。 考虑一个W位的整数。它的各位表达如下: Xw-1, Xw-2, ... , X1, X0,它的 MSB (Most Significant Byte, 最高有效字节)为 Xw-1, Xw-2, ... Xw-8; LSB (Least Significant Byte, 最低有效字节)为 X7,X6,..., X0。 其余的字节位于MSB, LSB之间。
这就引出了大端(Big Endian)与小端(Little Endian)的问题。如果LSB在MSB前面, 既LSB是低地址, 则该机器是小端; 反之则是大端。
对于数据中跨越多个字节的对象, 我们必须为它建立这样的约定:
对于跨越多个字节的对象,一般它所占的字节都是连续的,它的地址等于它所占字节最低地址。(链表可能是个例外, 但链表的地址可看作链表头的地址)。
import java.nio.ByteOrder;
如何用c语言输出地址的内容,如下所示:
数在内存中结构。下面引用一下百度知道里面搜到的内容来方便说明:===================来源:谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是 little endian呢? 其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。 用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:Big Endian 低地址 高地址 -----------------------------------------》 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 12 | 34 | 56 | 78 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Little Endian 低地址 高地址 -----------------------------------------》 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 78 | 56 | 34 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+===================C语言中float,double等类型,在内存中的结构来源:从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储更 高的精度。 任何数据在内存中都是以二进制(0或1)顺序存储的,每一个1或0被称为1位,而在x86CPU上一个字节是8位。比如一个16位(2 字节)的short int型变量的值是1000,那么它的二进制表达就是:00000011 11101000。由于Intel CPU的架构原因,它是按字节倒 序存储的,那么就因该是这样:11101000 00000011,这就是定点数1000在内存中的结构。 目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和 尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格: ````````符号位 阶码 尾数 长度 float 1 8 23 32 double 1 11 52 64 临时数 1 15 64 80 由于通常C编译器默认浮点数是double型的,下面以double为例: 共计64位,折合8字节。由最高到最低位分别是第63、62、61、……、0位: 最高位63位是符号位,1表示该数为负,0正; 62-52位,一共11位是指数位; 51-0位,一共52位是尾数位。 按照IEEE浮点数表示法,下面将把double型浮点数38414.4转换为十六进制代码。 把整数部和小数部分开处理:整数部直接化十六进制:960E。小数的处理: 0.4=0.5*0+0.25*1+0.125*1+0.0625*0+…… 实际上这永远算不完!这就是著名的浮点数精度问题。所以直到加上前面的整数部分算够53位就行了(隐藏位技术:最高位的1 不写入内存)。 如果你够耐心,手工算到53位那么因该是:38414.4(10)=1001011000001110.0110101010101010101010101010101010101(2) 科学记数法为:1.001……乘以2的15次方。指数为15! 于是来看阶码,一共11位,可以表示范围是-1024 ~ 1023。因为指数可以为负,为了便于计算,规定都先加上1023,在这里, 15+1023=1038。二进制表示为:100 00001110 符号位:正—— 0 ! 合在一起(尾数二进制最高位的1不要): 01000000 11100010 11000001 11001101 01010101 01010101 01010101 01010101 按字节倒序存储的十六进制数就是: 55 55 55 55 CD C1 E2 40===================我们普遍使用的Intel x86系列的CPU的PC机上运行的程序是采用little endian方式存储数据。以x为上面例子中的38414.4为例来说明:问题中经int型(4个字节)指针变量p取得x的地址后,*p的值就是从低地址开始的前四个字节组成的int型变量:0x55555555。再赋值给double型的y,那么y的值就是以0x55555555为整数部分的浮点数了。x = 100.1的情况可以在VC上查看内存得到其在内存中的值,低地址开始的四个字节是 66 66 66 66,所以*p = 0x66666666 = 1717986918。以%f的格式控制符打印输出的小数部分保留6位有效数字,并且禁止以指数形式输出浮点数,所以结果就是:1717986918.000000另外,虚机团上产品团购,超级便宜
エンディアン
尾序。endianBig Endian 和 Little Endian powerpc 发表于 2005-5-5 15:25:00 谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是 little endian呢? 其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。