美文网首页程序员
字节序-大头端小头端

字节序-大头端小头端

作者: alonwang | 来源:发表于2020-07-08 17:45 被阅读0次

前言

字节顺序,又称端序或尾序(英语:Endianness),在计算机科学领域中,指存储器中或在数字通信链路中,组成多字节的字的字节的排列顺序。wikipad

大头端和小头端取自格列佛游记中的故事,用来表明字节序争论是无意义的.但是日常遇到大头端和小头端,我们需要清楚其中的差别. 近期看了《深入理解计算机系统》的部分内容,学到了字节序相关知识,分享一下,希望以后各位以后不会像我一样死记硬背: 大头序就是存储顺序和阅读顺序相同,小头序和它相反

正文

十六进制数据0xABCD的内存地址从0开始,在大头端和小头端两种字节序是怎么存储的?

byte-order-1.png

以字节划分数据,对大头端,高位存在低地址处;对小头端,低位存在低地址处

字节划分数据,高低位,高低地址

字节划分数据由存储器的特性决定的,存储器的基本存储单位是字节(Byte).一个字节由8位(Bit)组成,对0xABCD ,对应的二进制 1010101111001101共16位,需要两个字节存储 ,划分为 10101011(AB)和11001101(CD)。

高低位是数学知识,从右到左位数上升。还以0xABCD为例,A相对B是高位,B相对于A是低位, A是最高位,D是最低位, 结合这个概念 上面的 10101011(AB)就是高位,11001101(CD)就是低位

高低地址是从左到右地址上升, 假设存储空间的地址范围 为0~31. 0就是低地址,1相对0就是高地址。

字节序

结合上面几个概念,字节序就是将数字按字节划分后,根据字节高低位决定的存储顺序

后记

字节序有两个以迷惑的地方,

  • 一切以字节为基础

    • 如果没能理解, 那么你可能理解成 在小头端时数据会被存储为0xDCBA!。 要记住所有的顺序都是基于字节的。
  • 数字的高低位和高低地址

    • 数字的高低位从右到左位数上升,地址从左到右地址上升。不要把这两个混淆

最后再来一次口诀: 大头序就是存储顺序和阅读顺序相同,小头序和它相反


理解字节序
《深入理解计算机系统》

相关文章

  • 字节序-大头端小头端

    前言 字节顺序,又称端序或尾序(英语:Endianness),在计算机科学领域中,指存储器中或在数字通信链路中,组...

  • 字节序

    端模式分为小端字节序与大端字节序。 1. 小端字节序(Little Endian, LE)低字节存于内存低地址,高...

  • 字节序的大头和小头

    一 字节序含义 看名释意,字节序就是字节的顺序,用来描述计算机中如何组织字节,组成对应数字的。一般用英文endia...

  • 大头儿子小头爸爸

    大头儿子小头爸爸 大头儿子小头妈妈 小头妈妈哭了 大头儿子哭了

  • 内存序、字面量、动态规划

    内存字节序 确认内存字节序 /* 确定你的电脑是大端字节序还是小端字节序 */include int check...

  • Linux socket编程:地址及转换

    1. 网络字节序与主机字节序 1.1 主机字节序() CPU的字节顺序类型, 小端,little endian; ...

  • 大小端字节序

    内存逻辑上是一个大的字节数组,当存储大于一个字节的数据时就有字节序的问题。 大小端经常弄混,这里有种简单的记忆方法...

  • 大小端字节序

    字节序,或字节顺序("Endian"、"endianness" 或 "byte-order"),描述了计算机如何组...

  • Linux的socket API基本操作

    1.socket地址API 主机字节序和网络字节序 字节序分为大端字节序和小端字节序 大端字节序 = 一个整数的高...

  • 原创儿歌《用筷子》

    一根筷子两个头 一个大头一小头 拿着大头夹小头 别用小头夹大头 要是小头夹大头 用着肯定不舒服 你要这样吃下去 吃...

网友评论

    本文标题:字节序-大头端小头端

    本文链接:https://www.haomeiwen.com/subject/gzaccktx.html