zoukankan      html  css  js  c++  java
  • 大端序与小端序

    何为大端序,小端序?

    简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了。注意字节序是硬件层面的东西,对于软件来说通常是透明的。再说白一点,字节序通常只和你使用的处理器架构有关,而和编程语言无关,比如常见的Intel x86系列就是小端序。

    Big-endian(大端序)

    数据的高位字节存放在地址的低端 低位字节存放在地址高端

    Little-endian(小端序)

    数据的高位字节存放在地址的高端 低位字节存放在地址低端

    字节的高位与低位
    举个例子,int a = 0x12345678 ; 那么左边12就是高位字节,右边的78就是低位字节,从左到右,由高到低,(注意,高低乃相对而言,比如56相对于78是高字节,相对于34是低字节)

    地址的高端与低端
    0x00000001
    0x00000002
    0x00000003
    0x00000004
    从上倒下,由低到高,地址值小的为低端,地址值大的为高端。

    不同字节序如何存储数据?

    看看两种方式如何存储数据,假设从地址0x00000001处开始存储十六进制数0x12345678,那么

    Bit-endian 如此存放(按原来顺序存储)
    0x00000001           -- 12
    0x00000002           -- 34
    0x00000003           -- 56
    0x00000004           -- 78

    Little-endian 如此存放(颠倒顺序储存)
    0x00000001           -- 78
    0x00000002           -- 56
    0x00000003           -- 34
    0x00000004           -- 12

    一个很好的记忆方法是,大端序是按照数字的书写顺序进行存储的,而小端序是颠倒书写顺序进行存储的。

  • 相关阅读:
    天梯程序设计竞赛 L2-005. 集合相似度 STL
    Oulipo kmp
    剪花布条 kmp
    poj 1321 dfs
    蓝桥杯历届试题 打印十字图
    windows 10家庭版安装SQL Server 2014出现.net 3.5失败问题解决。
    使用分区助手转移windows 10系统出现黑屏boot manager报错问题。
    使用java AWT做一个增加按钮的简单菜单窗体
    R基本画图
    R的基础学习之数据结构
  • 原文地址:https://www.cnblogs.com/dashumeizi/p/4533088.html
Copyright © 2011-2022 走看看