数据格式:大端模式(Big-endian)和小端模式(Little-endian)
有没有想过当定义一个变量的时候,这个变量在内存中是如何存放的呢?这就涉及到数据格式中的大端模式(Big-endian)和小端模式(Little-endian)
- 大端模式(Big-endian):高位字节存放在内存的低端地址,低位字节存放在内存的高端地址
- 小端模式(Little-endian):低位字节存放在内存的高端地址,高位字节存放在内存的低端地址
eg1:int a = 0x12345678,a在内存中是如何保存的?
- int型变量需要4个字节保存数据,a是4个字节的变量
- 把 a 分为 0x12,0x34,0x56,0x78 4个部分,分别保存到4个字节中
- 内存中,每个字节都有一个编号,这个编号就是内存的地址,所以没每个字节都有一个地址
- a 需要占据4个字节,就会占据4个地址,这4个地址也是从低地址变化到高地址
若 a 变量中高字节(0x12)保存在低地址,则是大端模式
若 a 变量中低字节(0x78)保存在低地址,则是小端模式
如图,假设起始地址为0x4000
大端模式(Big-endian):
内存地址 |
0x4000 | 0x4001 | 0x4002 | 0x4003 |
存放内容 | 0x12 | 0x34 | 0x56 | 0x78 |
小端模式(Little-endian):
内存地址 |
0x4000 | 0x4001 | 0x4002 | 0x4003 |
存放内容 | 0x78 | 0x56 | 0x34 | 0x12 |
eg2:使用程序判断CPU是大端还是小端
#include<stdio.h>
int main()
{union w{int a;char b;} c;c.a = 0x12345678;printf("%x\n",c.b);}
打印结果为:78
我使用的是Linux系统编写的程序,由此可以看出此CPU为小端模式
分析:联合体所有成员占用同一段内存,修改一个成员会影响所有成员,给联合体的 a 赋值,但 a 和 b 的类型不同,从而轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。
数据格式:大端模式(Big-endian)和小端模式(Little-endian)相关推荐
- ARM的大端格式big endian、小端格式little endian和字word
1.大小端格式的定义 在ARM体系结构的数据存储格式中,将4字节定义为一个字(Word),2字节定义为半字. 例如从0地址开始存放字数据,0号字节到3号字节放置第一个字数据,从第4号字节到第7字节放置 ...
- 大端模式(big endian)和小端模式(little endian)
大端模式 所谓的大端模式(big endian),是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理 ...
- 大小端模式,stm32采用小端模式
存储模式: 小端:较高的有效字节存储在较高的存储器地址,较低的有效字节存储在较低的存储器地址. 大端:较高的有效字节存储在较低的存储器地址,较低的有效字节存储在较高的存储器地址. STM32 属于小端 ...
- Big Endian(大端)和 Little Endian(小端)模式
文章目录 1.字符表示(编码) 2.什么是字节序 3.大小端模式的区别 举个例子 如何 C 编程判断CPU是大端还是小端模式 例题一 例题二:大端模式向小端模式发送数据 4.字节序转换函数 核心就是: ...
- 大端模式与小端模式的理解以及判断方法
1. 为什么会有大端模式和小端模式 在计算机中,我们知道数据是按照字节存储的,如果数据都是单字节存储,就不涉及存储顺序的问题.但是,大多数情况下,数据不是按照单字节的方式存储的,例如会有类似于int, ...
- 计算机中的大端模式与小端模式
1.小端模式 小端模式:数据的高字节保存在内存的高地址中:数据的低字节保存在内存的低地址中.默认使用小端模式 2.大端模式 大端模式:数据的高字节保存在内存的低地址中:数据的低字节保存在内存的高地址中 ...
- C语言之大端模式与小端模式
大端模式与小端模式的定义(字节序) 大端模式:数据的高字节在低地址,低字节在高地址 小端模式:数据的高字节在高地址,低字节在低地址 怎么判断系统是大端模式和小端模式 首先来看两个知识点: (1)联合体 ...
- 【Linux网络编程】大端模式和小端模式
00. 目录 文章目录 00. 目录 01. 概述 02. 示例分析 03. 优缺点 04. 数组存储 05. 测试机器模式 07. 附录 01. 概述 大端模式(Big-endian):高位字节排放 ...
- 计算机是小端模式,计算机内的大小端模式
一.什么是大端与小端模式? 大端模式英文叫Big-Edian,小端模式英文叫little-Endian. 简单说: 大端模式:低字节存放在内存的低地址,高字节存放在内存的高地址(跟我们的一般思维相一致 ...
最新文章
- 西北工业大学21计算机考研,西北工业大学2018年计算机考研879专业综合考试大纲...
- 四川大学c语言期末试题答案,四川大学计算机学院2005级C语言程序设计试卷(2份,有答案)...
- axios nodejs 上传图片_Vue Axios跨域、文件上传
- ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(一)
- 关于硕士研究生的几点思考
- 游戏用户体验指标_电子游戏如何超越游戏化的用户体验
- c语言lr分析器的设计与实现_[源码和文档分享]基于有限自动机的词法分析器构造...
- c语言动态指针数组--一种伪二维数组
- Android studio 4.0 Layout Inspector查看当前Activity
- linux安装vmd软件步骤,科学网-VMD (linux下分子可视化软件)-刘雪静的博文
- Eat Doug吃豆豆小游戏纯js代码
- 复活Java 前言
- BRITS: Bidirectional Recurrent Imputation for Time Series(时间序列的双向递归填补)论文详解
- 【方向盘】程序人生 | 春风得意马蹄疾,一日看尽长安花
- 物联网操作系统软件定时器
- linkMap深度解析
- 心田花开教学让你快速掌握心田上的百合花写法与修辞手法运用
- 戴老师论文阅读:Two-Timescale Channel Estimation for Reconfigurable Intelligent Surface Aided Wireless...
- 杭电ACM2026题
- TypeScript 踩坑之 TS7053