美文网首页
大端与小端的概念

大端与小端的概念

作者: 醉起步溪月啊 | 来源:发表于2020-09-10 14:06 被阅读0次

在学到虚拟机字节码的时候,了解到了大端与小端的概念,一开始不是太了解,与是查了一点相关的资料做记录。

对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。

以上这段话是来自《UNIX网络编程·卷一》,很多其它的书籍基本上都是这样解释的。但是这样理解很容易忘记。

要理解这两个概念,首先需要了解大端与小端这两个令人迷惑的属于究竟是如何产生的?

    《程序设计实践》第9章中提到,“大端”和“小端”可以追溯到1726年的Jonathan Swift的《格列佛游记》,其中一篇讲到有两个国家因为吃鸡蛋究竟是先打破较大的一端还是先打破较小的一端而争执不休,甚至爆发了战争。1981年10月,Danny Cohen的文章《论圣战以及对和平的祈祷》(On holy wars and a plea for peace)将这一对词语引入了计算机界。这么看来,所谓大端和小端,也就是big-endian和little-endian,其实是从描述鸡蛋的部位而引申到计算机地址的描述,也可以说,是从一个俚语衍化来的计算机术语。稍有些英语常识的人都会知道,如果单靠字面意思来理解俚语,那是很难猜到它的正确含义的。在计算机里,对于地址的描述,很少用“大”和“小”来形容;对应地,用的更多的是“高”和“低”;很不幸地,这对术语直接按字面翻译过来就成了“大端”和“小端”,让人产生迷惑也不是很奇怪的事了。

    不过给我启发的是,在裘宗燕翻译的《程序设计实践》里,这对术语并没有翻译为“大端”和小端,而是“高尾端”和“低尾端”,这就好理解了:如果把一个数看成一个字符串,比如11223344看成"11223344",末尾是个'\0','11'到'44'个占用一个存储单元,那么它的尾端很显然是44,前面的高还是低就表示尾端放在高地址还是低地址,它在内存中的放法非常直观,如下图:

大端与小端

此文章参考如下:
作者:五岳

出处:http://www.cnblogs.com/wuyuegb2312

对于标题未标注为“转载”的文章均为原创,其版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章

  • 大端与小端的概念

    在学到虚拟机字节码的时候,了解到了大端与小端的概念,一开始不是太了解,与是查了一点相关的资料做记录。 对于一个由2...

  • C: 判断大小端

    大端与小端 大端与小端指的是多字节的数值在内存中的存储形式,数值的起始存储在内存的高序地址则为大端,反之为小端: ...

  • 字节序:大端法和小端法

    大端和小端 大端法:高位保存在低地址中。 小端法:高位存放在高地址中, 程序判断大端法还是小端法 大端和小端法对程...

  • 大端与小端

    字节顺序,又称端序或尾序 ( Endianness ),是跨越多字节的程序对象的存储规则。 在几乎所有的机器上,多...

  • arm体系结构中的大小端

    大端模式: 小端模式:

  • 大端小端

    由于某个问题,最近突然联想到大端小端问题,时间久远,记忆有点模糊,所以又重新翻看了一下,做个记录,内容大都来源伟大...

  • 小端 / 大端

    Little-Endian 小端:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。Big-Endia...

  • 大端小端

    大端: 小端:数据的 低 位保存在内存的低地址中,数据的 高 位保存在内存的高地址中。 上面是大小端的定义。定义总...

  • 详解大端模式和小端模式

    详解大端模式和小端模式 嵌入式开发交流群280352802,欢迎加入! 一、大端模式和小端模式的起源 关于...

  • 字符串

    1, 大端小端 大端: 高位在高地址,低位在低地址 小端: 高位在低地址,低位在高地址 2, java.lang....

网友评论

      本文标题:大端与小端的概念

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