Big Endian 和 Little Endian的区别
2个回答
展开全部
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
在设计计算机系统的时候,有两种处理内存中数据的方法。一种叫为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
名片
2024-10-28 广告
2024-10-28 广告
作为优菁科技(上海)有限公司的一员,Altair HyperWorks是我们重点代理的CAE软件套件。该软件以其全面的仿真能力、丰富的建模工具和高效的优化设计功能著称,广泛应用于汽车、航空航天、能源及电子等行业。HyperWorks通过集成...
点击进入详情页
本回答由名片提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询