您当前的位置: 首页 > 

我什么都布吉岛

暂无认证

  • 3浏览

    0关注

    292博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

简单理解大端小端

我什么都布吉岛 发布时间:2021-07-14 11:18:22 ,浏览量:3

大端和小端是计算机写内存的习惯。就如人类写文章时的顺序一般,现代人从左往右,古人却是竖书成行(自上而下写满一行后,再自右向左换行。);有些计算机规定从左往右写内存,有些规定从右往左写内存。 大端就是大地址在前,小端就是小地址在前。

前言:大端小端的历史发展

Little-Endian和Big-Endian这两个词最早来自格列夫游记用来讽刺政党之间的观点,一个坚持从小的那一端打破鸡蛋,另一个则坚持从大的那一端打破鸡蛋,我们都知道对于做饭而言,这两个没什么区别。

计算机Intel8088使用小端方式(相较于大端而言)是因为其能够完成在第一个内存周期执行操作,后来计算机数据总线宽度与寄存器宽度一致了,也就没有这个优势了。从操作者而言,小端模式利于计算,而大端模式则更易理解。对于具体的某一位bitPos,其含权大小bitValue是如何被计算的?[1]

  • 小端 b i t V a l u e = 2 b i t P o s + 8 × b y t e P o s bitValue=2^{bitPos+8\times{bytePos}} bitValue=2bitPos+8×bytePos

对于大端模式你还得知道总的字节数量wordSize

  • 大端 b i t V a l u e = 2 b i t P o s + 8 × w o r d S i z e − b y t e P o s − 1 bitValue=2^{bitPos+8\times{wordSize-bytePos-1}} bitValue=2bitPos+8×wordSize−bytePos−1

大端模式,第一个字节第一个数字就是符号位,小端需要找到最后一个字节的第一个数字。简单来说,权重计算小端优于大端,因为他不需要提前知道总的字节大小。

不同的计算机架构可能采用不同的字节序,这取决于CPU的设计和实现。一般来说,大端序的架构有:

  • IBM System/370及其后续机型
  • Motorola 68000系列
  • PowerPC
  • Java虚拟机

小端序的架构有:

  • Intel x86及其兼容处理器
  • ARM(默认小端序,但可以切换为大端序)
  • Intel 8051
  • Zilog Z80

还有一些架构可以支持双端序,也就是可以在运行时选择使用大端序或小端序,例如:

  • MIPS
  • ARM(可选大端序)
  • DEC Alpha
  • IA-64
一、数是按字节存储的

我们知道计算机是以字节为单位存储数据的,一个十进制数需要多少存储单元取决于其数的大小。

char arr[] = { 0x12,0x34 };
std::cout             
关注
打赏
1658157489
查看更多评论
0.0392s