大小端格式由编译器还是CPU决定的? |
您所在的位置:网站首页 › 文件的类型是由什么决定的 › 大小端格式由编译器还是CPU决定的? |
关注、星标公众号,不错过精彩内容 编辑:黄工 素材来源:网络 有读者问了这么一个问题:大小端与编译器和操作系统有关吗? 其实大小端主要由CPU决定,与编译器、操作系统这些没有直接关系。 因为我以前学习的时候,有很长一段时间也是存在这样的疑问。我觉得应该还有很多人都没搞明白,所以,今天来分享一下相关内容。 一、关于大小端 大小端也可以理解为字节顺序,或者端序、尾序,也就是你们看到的大端序(Big-Endian)、小端序(Little-Endian)。 关于大小端的解释网上很多教程,也不难理解。 大端模式:是指数据的高字节保存在内存的低地址中; 小端模式:是指数据的高字节保存在内存的高地址中; 大小端模式: https://baike.baidu.com/item/大小端模式/6750542 字节顺序: https://zh.wikipedia.org/wiki/字节序 也可以参看我之前分享过的文章:你真的懂CPU大小端模式吗? 二、CPU是大小端存储的决定因素 可能部分初学者被一些外界信息给误导,从而有这样的疑惑。 比如: 操作系统是大端还是小端存储? Keil C51是大端模式,认为与编译器有关。 你了解大小端之后,你会发现,大小端主要有用于存储的顺序,与存储器(硬件)关系比较大,编译器和操作系统仅仅是配合CPU编译好相应的代码,而不是决定大小端的因素。 三、ARM大小端模式 ARM处理器默认是小端模式,但它是支持大端模式。 我们在Cortex-M3手册中有这么一些描述:在Cortex-M3中, 存储器系统支持 both 小端配置和大端配置。 Cortex-M3 支持 both 小端模式和大端模式。但是,单片机其它部分的设计,包括总线的连接,内存控制器以及外设的性质等, 一定要先在单片机的数据手册上查清楚可以使用的端。在绝大多数情况下,基于 CM3 的单片机都使用小端模式。为了避免不必要的麻烦,基本清一色地使用小端模式。 归根结底,ARM的大小端模式还是与CPU有关,而与编译器和操作系统没有直接关系。 免责声明:本文部分素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。 ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ 推荐阅读: 精选汇总 | 目录 | 搜索 VS Code V1.43支持远程开发、同步预览 Cortex-M微控制器软件接口标准CMSIS详细内容 关注微信公众号『strongerHuang』,后台回复“1024”,查看更多精彩内容。 长按前往图中包含的公众号关注 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |