大端模式(big-endian)与小端模式(little-endian)

2023-10-27

参考自

大端模式与小端模式

  1. 大端模式是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中.
  2. 小端模式是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中

大小端模式的由来

在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit

但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器)。

另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题。

因此就导致了大端存储模式和小端存储模式。

例如:
一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122。那么0x11为数据高字节,0x22为数据低字节。

  1. 对于大端模式,就将0x11放在内存低地址中,即0x0010中;0x22放在内存高地址中,即0x0011中。
  2. 小端模式,就将0x11放在内存高地址中,即0x0011中;0x22放在内存低地址中,即0x0010中。

我们常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

大小端在内存中的存放方式举例

例如:

a) 16bit宽的数0x1234
1.Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址
0x4000
0x4001
存放内容
0x34
0x12

2.Big-endian模式CPU内存中的存放方式则为:

内存地址
0x4000
0x4001
存放内容
0x12
0x34

b) 32bit宽的数0x12345678
1.Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址
0x4000
0x4001
0x4002
0x4003
存放内容
0x78
0x56
0x34
0x12

2.Big-endian模式CPU内存中的存放方式则为:

内存地址
0x4000
0x4001
0x4002
0x4003
存放内容
0x12
0x34
0x56
0x78

如何测试编译器是大端还是小端

下面这段代码可以用来测试一下你的编译器是大端模式还是小端模式:

#include<stdio.h>

int main()
{
    short int x; //2 bytes
    char x0,x1;
    x=0x1122;
    x0=((char *)&x)[0];  //内存低地址单元
    x1=((char *)&x)[1];  //内存高地址单元
    printf("x0=0x%x,x1=0x%x",x0,x1);// 若x0=0x11,则是大端; 若x0=0x22,则是小端......
    return 0;
}
用DEV-C++运行的结果得到的是小端模式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大端模式(big-endian)与小端模式(little-endian) 的相关文章

  • 《计算机组成原理》第6章:总线

    第6章 xff1a 总线 6 1 总线概述 总线的定义 总线是一组能为多个部件分时共享的公共信息传送线路 分时和共享是总线的两个特点 分时是指同一时刻只允许有一个部件向总线发送信息 xff0c 如果系统中有多个部件 xff0c 则它们只能分
  • 2018校招笔试真题汇总

    2018校招笔试真题汇总 最近看好多牛油贡献了很多考试的真题 xff0c 我把他们汇总在一起给到大家 xff0c 也感谢这些牛油的贡献 xff0c 只要进这个汇总贴的 xff0c 你们都将每人获得一份牛客送出的礼物一份 科大讯飞 xff1a
  • Quartus II 13.0波形仿真

    先放结论 Quartus II 13 0有自带的仿真工具 能实现波形仿真 之前一直找不到关于Quartus II 13 0的波形仿真 然后百度的都是说quartus ii 9 0之后的版本就没有这个功能了 只能再下一个modelsim之类的
  • 计算机组成原理——第六章测试题(上)

    1单选 1分 计算机中的数据可以存放在 C 中 A 寄存器 B 主存 C 都可以 D 硬盘 2单选 1分 下列对源码 补码和反码叙述正确的是 B A 当真值为正时 原码和补码的表示形式不同 但其符号位都用 0 表示 B 三种机器数的最高位均
  • 计算机组成原理实验三-----系统总线和具有基本输入输出功能的总线接口实验

    总线是计算机中连接各个功能部件的纽带 是计算机各部件之间进行信息传输的公共通路 总线不只是一组简单的信号传输线 它还是一组协议 他有两大特征 分时 同一总线在同一时刻 只能有一个部件占领总线发送信息 其他部件要发送信息得在该 部件发送完释放
  • 计算机组成原理期末总结

    文章目录 写在前面 1 计算机系统概论 知识点 习题 2 运算方法和运算器 知识点 习题 3 多层次的存储器 知识点 习题 4 指令系统 知识点 习题 5 中央处理器 知识点 习题 6 总线系统 知识点 习题 7 外存与IO设备 知识点 习
  • 计算机组成原理学习笔记——六、总线

    文章目录 计算机组成原理学习笔记 六 CPU总线 6 1 总线概述 6 2 总线仲裁 6 3 总线操作和定时 6 4 总线标准 小结 计算机组成原理学习笔记 六 CPU总线 6 1 总线概述 总线的猝发传送方式 一个总线周期内传输存储地址连
  • 软件架构设计---软件架构视图

    软件架构视图 从软件架构本身的特点出发讨论了架构建模及与特定应用领域密切相关的架构风格 本节将从对架构编档的角度对软件架构视图及其风格进行讨论 1 软件视图的分类 现代软件系统非常复杂 通常在某个具体的时间内只需将注意力集中在某几个结构上
  • 原码表示

    原码的本质 符号位 绝对值 我们下面分析的类型主要是分析纯小数和纯整数的情况 因为在计算机里面 实数是可以转换成下面这两种形式的 纯小数 纯整数 n 位二进制数来表示这个数的原码 符号位占一位 还剩 n 1 位数值位 n 1 位能表达的最大
  • 【计算机组成原理】(四)原码补码的加减乘除

    各种码的作用 模运算的性质 3 1 12 9 9 0 12 9 21 1 12 9 33 2 12 9 15 2 12 9 我们发现等号右边都是 9 相当于等号的左边的数除去12的余数都是9 那我们就说这几个等好左边的数 在mod12的情况
  • 5.5_数据的存储和排列

    文章目录 一 大小端模式 二 边界对齐 在这个小结中 我们要探讨的是 数据的存储和排列 一 大小端模式 首先来看一个之前提到过的问题 叫做大小端模式 我们在内存里经常会存储某一些多字节的数据 比如 c 语言里的 Int 型变量 在很多时候占
  • 【计算机组成原理】——原码,反码,补码,移码怎样计算

    机器数与真值 把符号 数字化 的数称为机器数 而把带 或 的数称为真值 正负号用二进制的0 1表示 0 1 x 001 机器数 第一位表示符号 x 1 x 101 真值 直接用 表示 x 5 原码 反码 补码 移码的计算 正数的原码 反码
  • 计算机组成原理实验二 存储系统预习报告

    实验一 静态RAM 一 实验目的 掌握静态随机存储器 RAM 工作特性及数据的读写方法 基于信号时序图 了解读写静态随机存储器的原理 二 实验预习 1 阅读实验指导书 然后回答问题 实验所用的静态存储器由一片 6116 2K 8bit 构成
  • 计算机组成原理--基于Logisim的奇偶校验电路实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的奇偶校验电路实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logi
  • 计算机组成原理笔记

    CPU的功能和结构 运算器 对数据进行加工 算术逻辑单元ALU 暂存寄存器 通用寄存器 累加寄存器ACC 程序状态字寄存器PSW 移位器 计数器 控制器 取指令 分析指令 执行指令 中断处理 程序计数器PC 指令寄存器IR 指令译码器 时序
  • 【计算机组成原理】总线宽度和总线带宽的区别,总线带宽的计算

    总线宽度 总线的宽度 指总线在单位时间内可以传输的数据总数 即平常说的32位 64位 总线宽度 总线位宽 数据线的根数 总线带宽 总线带宽 指总线在单位时间内可以传输的数据总数 等于总线的宽度与工作频率的乘积 通常单位 MB s MBps
  • 全相联映射、直接映射、组相连映射

    目录 1 主存中的块放到cache 高速缓冲存储器 中哪个位置 2 标记位 有效位 命中是什么 2 1 标记位 2 2 有效位 2 3 命中 3 全相联映射 4 直接映射 4 1优化标记位 5 组相连映射 6 课后习题 1 主存中的块放到c
  • CPU时钟周期、主频、CPI、MIPS

    主频 理解 主频是机器内部主时钟的频率 主频越高 完成指令的一个执行步骤所用的时间就越短 速度越快 比如跳绳 跳的越快 即频率越高 那么完成一次所用的时间就越短 单位 Hz 常见的有1 8GHz 2 4GHz CPU时钟周期 理解 跟上面的
  • 【计算机组成原理】2、二进制原码反码补码、左移右移、进制转换,进制相减、内存地址偏移计算与容量计算

    文章目录 一 二进制的原码 反码 补码 1 1 二进制计算 1 2 左移 右移 1 3 异或 二 进制转换 2 1 二进制 八进制 十六进制转为十进制 2 2 十进制转为二进制 八进制 十六进制 2 3 二进制转为八进制 十进制 十六进制
  • 【408】计算机学科专业基础 - 计算机组成原理

    一 计算机系统概述 复习提示 本章是组成原理的概述 考查时易针对有关概念或性能指标出选择题 也可能综合后续章节的内容出有关性能分析的综合题 掌握本章的基本概念 是学好后续章节的基础 部分知识点在初学时理解不深刻也无须担忧 相信随着后续章节的

随机推荐

  • Could not read Username Error for Git

    在用使用Vundle安装neocomplete时失败 查看log提示could not read Username for https github com Device not configured 经检查这里提示的Username是指n
  • vue3中,this.$router.push刷新当前页面,该页面不重新加载需要手动刷新的解决方案

    1 demo vue 在this router push demo 后 demo vue没有刷新也没有重新加载 但是路由地址已经变了 只是需要手动刷新 2 解决 监听一下当前路由 watch route to from to表示要跳转的路由
  • 固定资产可视化智能管理系统

    什么是资产管理 企业一般有设备 工具 IT通讯 仪器 载具 文档 家具和一些其他的资产 比如某个制造企业现状 共计约有8000个资产分布存在于30个区域 包括实验室 办公室和工厂 其中每年新入资产预估为2000个 报废资产预计1800个 在
  • Python 3D函数图形投影到2D坐标轴上

    1 contourf函数命令 cmap matplotlib cm jet norm matplotlib colors Normalize vmin min np array sol vmax max np array sol plt c
  • 统计学习方法 第七章习题答案

    习题7 1 题目 比较感知机的对偶形式与线性可分支持向量机的对偶形式 解答 感知机 原始形式 min w b
  • linux:linux基础命令(一)

    前言 为什么要学linux 为了运维 项目上线 所以要了解linux操作系统 什么是LNMP linux nginx mysql php小常识 一个用Linux Shell编写的可以为CentOS RadHat Debian Ubuntu
  • 进程和子进程

    进程和子进程 父子进程有独立的数据段 堆 栈 共享代码段 Linux中每个进程都有4G的虚拟地址空间 独立的3G用户空间和共享的1G内核空间 fork 创建的子进程也不例外 子进程资源的由来 1G内核空间既然是所有进程共享 因此fork 创
  • input type=“file”上传文件(一)

    使用input标签 type file 的时候就可以上传文件 为input标签添加change事件 调用函数
  • qt 添加动作 (QAction)

    Qt 5 mainwindow h ifndef MAINWINDOW H define MAINWINDOW H include
  • 3Dgame_homework7

    3D游戏 作业7 智能巡逻兵 要求 游戏设计要求 程序设计要求 提示 相关理论 实现过程与代码 智能巡逻兵 要求 游戏设计要求 创建一个地图和若干巡逻兵 使用动画 每个巡逻兵走一个 3 5 个边的凸多边型 其位置数据是相对地址 即每次确定下
  • 静态库调用动态库或者静态库(Cmake例子)

    1 静态库无论调用动态库还是静态库都只需要include库的头文件 2 要在调用该静态库的地方添加库引用 并设置路径 结论 其实静态库调用动态库或者静态库 只是在用到库方法的地方把该方法添加到LIB当中 真正使用的地方才会把这些库LINK起
  • flutter_blue优化(FlutterBlue.instance.scan搜索重复、搜索结果处理、更新之前保存缓存数据、保存连接成功的设备)

    1 搜索列表优化 FlutterBlue instance scan搜索重复 搜索结果处理 更新之前保存缓存数据 2 保存连接过的设备 3 十进制转十六进制 4 写入十六进制数据 json scan dart 实体类 主要是使用flutte
  • Spring Boot是什么?它的优点是什么?

    Spring Boot是什么 它的优点是什么 Spring Boot是一个基于Spring框架的快速开发框架 它旨在简化Spring应用程序的开发过程和部署流程 Spring Boot提供了自动化配置和约定大于配置的方式 使开发人员可以专注
  • JavaWeb--- Filter(过滤器)学习

    Filter 过滤器 处理中文乱码 登录验证 1 xml依赖
  • 教你用Python做图像处理

    质量 速度 廉价 选择其中两个 提到图像处理第一个想到的库就是PIL 全称Python Imaging Library Python 图像处理类库 它提供了大量的图像操作 比如图像缩放 裁剪 贴图 模糊等等 很多时候它需要配合numpy库一
  • 无盘服务器怎么看使用情况,无盘服务器回写盘查看

    无盘服务器回写盘查看 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 由于某些机型的服务器没有配备SDI卡 或者其他服务器
  • 代码随想录一刷-Day09

    LeetCode27 移除元素 public int removeElement int nums int val if nums length 0 return 0 双指针 int slow 0 fast 0 while fast lt
  • Dynamic 356 OP 9.0版本 同服务器环境还原DB导入组织报错

    环境 Dynamic 365 9 0 6 9 PRD和UAT组织在同一套服务器环境中 操作 1 备份PRD数据库 还原到UAT数据库 2 在CRM部署管理器中导入UAT组织数据库 提示错误如下 12 31 12 Verbose Databa
  • 代码简洁3 —— 注释

    前段时间在组织代码review时 提到代码可读性问题时 很多人的第一反应竟然是多添加注释 而我始终觉得注释只能是锦上添花 而不能雪中送炭 再多的注释也改变不了代码逻辑组织混乱的现实 反而过多的注释会加重代码阅读的时间 什么也比不上放置良好的
  • 大端模式(big-endian)与小端模式(little-endian)

    参考自 大端模式与小端模式 大端模式是指数据的低位保存在内存的高地址中 而数据的高位保存在内存的低地址中 小端模式是指数据的低位保存在内存的低地址中 而数据的高位保存在内存的高地址中 大小端模式的由来 在计算机系统中 我们是以字节为单位的