当前位置: 首页 > news >正文

数据在内存中的存储

有任何不懂的问题可以评论区留言,能力范围内都会一一回答

我们前面学过,数据在内存中是以补码的形式存在。

原码补码反码。-CSDN博客

1.大端字节序和小端字节序

大端字节序和小端字节序是计算机内存中存储数据的两种不同方式,主要区别在于字节的排列顺序不同。理解这两种字节序的概念对于计算机硬件、操作系统、网络通信和软件开发非常重要。

大端字节序(Big-endian) 

定义 :大端字节序又称为大尾字节序,它将字面值的低位字节存放在内存的低地址处,而高位字节存放在高地址处。在内存中,依次增加的地址对应的字节是低位字节。
示例 :Motorola68000、PowerPC970、System/370等处理器使用大端字节序2。

小端字节序(Little-endian)

定义 :小端字节序又称为小尾字节序,它将字面值的低位字节存放在内存的高地址处,而高位字节存放在低地址处。在内存中,依次增加的地址对应的字节是高位字节。
示例 :x86架构的处理器(如Intel和AMD的处理器)通常使用小端字节序。

比如说

低位                                                                                                                                           高位 

int a =0x31415926

大端字节序的存储就是

低位                                                                                                                                           高位 

31415926

小端字节序的存储方式就是

低位                                                                                                                                           高位 

62951413

 注:上文中的0x代表16进制,一位16进制等同于4位2进制,8位16进制等同于32位2进制,即一个int类型的大小(4字节)

那么我们再思考一下,我们如何写一个代码去确定我们使用的到底是大端字节序储存还是小端字节序储存

我们可以直接通过访问第1个字节是

62

还是

31

这个地方和之前的讲过的一个题目很相似C语言每日好题(2)-CSDN博客 

 我们可以借用这篇文章的思路去写一串代码

通过这种方式我们就可以去判断我们使用的是大端字节序储存还是小端字节序储存了

 

 


http://www.mrgr.cn/news/5873.html

相关文章:

  • Linux入门——11 线程
  • Flutter->`Flutter` 通过`ffi`调用`Rust`编译生成的产物.so文件(Android)和.a文件(iOS)接口方法
  • Focal Loss详解及其pytorch实现
  • Vue.js:从入门到进阶
  • 扫描包得到所有Bean的Class对象
  • Linux 信号 signal,sigaction,sigqueue,kill,相关函数
  • uni-app02
  • 安装 podman 与 podman-compose
  • SQL关键字检测持续优化,太难了
  • Pytorch:复写Dataset函数详解,以及Dataloader如何调用
  • 【数据分析】数据的计量尺度、数据集中趋势
  • 探索高效院内导航系统:最新技术解决方案与实战代码分享
  • 如何在算家云搭建模型mPLUG-Owl3(智能对话)
  • 第 10 章 正则表达式
  • Centos7.6-DNS服务安装与配置
  • mysql数据库调优
  • 模拟实现queue适配器【队列】【C++】
  • 【注解】@JsonProperty 详解
  • 【网络安全】副业兼职日入12k,网安人不接私活就太可惜了!
  • Stable Diffusion整合包与手动本地部署结合内网穿透远程AI绘画