1.

计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。

举例来说,数值0x2211使用两个字节储存:高位字节是0x22,低位字节是0x11

字节序:

大端格式(Big-Endian):将高位字节数据存储在低地址。

小端格式(Little-Endian):将低位字节数据存储在低地址。

  • 大端字节序:高位字节在前,低位字节在后,这是人类读写数值的方法。
  • 小端字节序:低位字节在前,高位字节在后,即以0x1122形式储存。

同理,0x1234567的大端字节序和小端字节序的写法如下图。

2.

我一直不理解,为什么要有字节序,每次读写都要区分,多麻烦!统一使用大端字节序,不是更方便吗?

上周,我读到了一篇文章,解答了所有的疑问。而且,我发现原来的理解是错的,字节序其实很简单。

3.

首先,为什么会有小端字节序?

答案是,计算机电路先处理低位字节,效率比较高,因为计算都是从低位开始的。所以,计算机的内部处理都是小端字节序。

但是,人类还是习惯读写大端字节序。所以,除了计算机的内部处理,其他的场合几乎都是大端字节序,比如网络传输和文件储存。

4.

计算机处理字节序的时候,不知道什么是高位字节,什么是低位字节。它只知道按顺序读取字节,先读第一个字节,再读第二个字节。

如果是大端字节序,先读到的就是高位字节,后读到的就是低位字节。小端字节序正好相反。

理解这一点,才能理解计算机如何处理字节序。

5.

字节序的处理,就是一句话:

"只有读取的时候,才必须区分字节序,其他情况都不用考虑。"

处理器读取外部数据的时候,必须知道数据的字节序,将其转成正确的值。然后,就正常使用这个值,完全不用再考虑字节序。

即使是向外部设备写入数据,也不用考虑字节序,正常写入一个值即可。外部设备会自己处理字节序的问题。

BIG-ENDIAN VS LITTLE-ENDIAN相关推荐

  1. big endian and little endian

    big endian(大端)和little endian(小端)表示机器对变量字节的存储顺序.big endian表示低地址存放最高有效字节,little endian表示低地址存放最低有效字节.这里 ...

  2. Unicode、UTF-8、Big Endian、Little Endian、GBK、UCS-2

    Unicode.UTF-8.Big Endian.Little Endian.GBK.UCS-2 一.Unicode.UCS.GBK 1.开始计算机只在美国用.八位的字节一共可以组合出256(2的8次 ...

  3. URL编解码、Big Endian和Little Endian

    一.Endian的起源 在各种计算机体系结构中,对于字节.字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特.字节.字.双字等等)应该以什么样的顺序进行 ...

  4. CPU中的Little Endian与Big Endian

    CPU中的Little Endian与Big Endian 今天在学习利用buildroot编译软件包的时候,make menuconfig之后在Target Architecture选项中发现了同一 ...

  5. VB 文件编码互换模块(支持 Ansi,UTF-8,Unicode(little endian),Unicode big endian)

    'VB 文件编码互换模块,支持对Ansi,UTF-8,Unicode(little endian),Unicode big endian编码之间进行转换. Option Explicit Privat ...

  6. Little endian和Big endian的区别

    许多嵌入式系统程序员对Little endian和Big endian模式的概念模糊不清,其实Little endian和Big endian是多字节寻址的微处理器中,两种数据书写和存储顺序的排列方式 ...

  7. big endian与little endian

    很多人都知道big endian和little endian但是很少有人知道它们的实质,因为只要你在网上一google,出来的都是那个经典的典故,不可否认,那个典故很重要,但是那也仅仅是个故事而已,计 ...

  8. Big Endian与Litter Endian

    Big Endian是大端,Litter Endian是小端,意思很明了,但是很难记住谁是谁.每次涉及到这个概念的时候,我都会GOOGLE一下,浪费精力. 怎样才能永远记住他们呢?网上搜索了一下,有很 ...

  9. Big Endian 和 Little Endian

    Big Endian 和 Little Endian 一.字节序 来自:http://ayazh.gjjblog.com/archives/1058846/ 谈到字节序的问题,必然牵涉到两大CPU派系 ...

  10. 整型,长整型,无符号整型等 大端和小端(Big endian and Little endian)

    一.大端和小端的问题 对于整型.长整型.无符号整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian ...

最新文章

  1. 深度学习静态图和静态图的区别以及优缺点是什么?
  2. strcpy函数的使用
  3. hdu1007最近点对问题(分冶java)
  4. 恢复Win10照片查看器
  5. [Diary] 阳 伞
  6. python输入一组数字存到列表_Python如何使用输入传递多个值并将它们存储在一个列表中(简单版本),python,怎么,input,传入,储存,到...
  7. 用javascript缓存ajax数据
  8. TIOBE 4 月编程语言排行榜:Python 让位,老将 C++ 夺回前三,PHP 惨遭抛弃!
  9. 2018 年,JavaScript 都经历了什么?
  10. ko学习二,绑定语法
  11. 【PAT】2020年秋季考试划水准备贴
  12. Caffe学习:Forward and Backward
  13. java基础学习(9)堆和栈的区别详解
  14. sketchup 2018下载与安装教程
  15. 这届打工人,回家过年都这么难
  16. ALTOVA XMLSPY使用,建xml文件,构建xpath和XQuery查询,xml和json格式转换
  17. findfont: Font family [‘sans-serif‘] not found解决方法
  18. 四六级分数竟是这样算出来的!交白卷都不会得零分 (转)
  19. 25-陈庆祥-词法分析
  20. WordPress搭建过程

热门文章

  1. 自定义滚动条(css)
  2. Instagram登录使用教程目录
  3. 程序人生 | 记一次裸辞,裸辞需三思而后行!
  4. 怎么发现愿景和目标 | 进击
  5. 数据学习(十)-假设检验
  6. 怦然心动(Flipped)-2
  7. Android麦克风探测器
  8. 障碍物参考线交通规则融合器:Frame类
  9. 亲爱的,对不起,我要和别人结婚了
  10. 中国居民身份证号码校验算法