彻底搞懂大小端存储and调试中内存窗口如何使用?

定义

首先我们有一个常识,Windows采用小端存储方式。

在这里插入图片描述

探究Windows下vs2019是什么存储?

在小端存储方式中,低字节存储在内存的低地址处,高字节存储在内存的高地址处。这与大端存储方式恰好相反,大端存储方式中高字节存储在低地址处,低字节存储在高地址处。目前主流的CPU和操作系统都采用小端存储方式,因此小端存储已成为事实上的标准。

看到上面这句话,什么高地址低址值很抽象。那么首先我们就来学习一下何为高低地址。

地址一般是上低下高,左低右高。

下面来vs2019中探究一下调式中的内存中的这些数值都是些什么。

  • 下图是完整的一个内存图,我选择是展示64列,也就是这一行全部展示了,密密麻麻的,所以一般都会选择少一点,够看你当前变量占用字节长度即可;
  • 例如int->4列,double->8列

在这里插入图片描述
在这里插入图片描述

上图的最左边其实就是每一行开始的那个位置的地址,每一行的每一个字节都会右对应的地址,但是如果你都显示,也就是说,每一个字节都去显示它的地址,看起来就太冗杂了,所以vs2019中就只是显示这一行中第一个的地址。过64字节换一行。

  • 还需要注意的是,在内存中都是十六进制进行存储的,无论是字符串还是整形

这里写一个代码来深度探究一下调试中的内存如何查看

int main()
{int a = 3;int b = 4;printf("%d %d",a,b);return 0;
}

我们进行调试,打开内存监视窗口,输入&a和&b也就是取他们的地址,正好这两个变量,离的很近,我就一次找到了。

  • 最先得到的内容便是边是地址,边是地址。

  • 对于内存中的这些04 00 00 00他是十六进制的,二进制转十六进制(四位组合法),也就说明,一个00中有两个十六进制数就代表一个字节。这里是整形变量b占用四个字节,所以有四个一字节组成。
    在这里插入图片描述

  • 而且我么发现在一个04 00 00 00四个字节中的一个字节04中的内部顺序不变化都是先放低位再放高位。无论是在大端还是小端都是这样,不一样的在于字节之间的先后顺序

  • 通过上图,也可以看出,vs2019的低位存放于低地址,高位存放于高地址,所以他是一个小端存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/682255.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文笔记】KAN: Kolmogorov-Arnold Networks 全新神经网络架构KAN,MLP的潜在替代者

KAN: Kolmogorov-Arnold Networks code:https://github.com/KindXiaoming/pykan Background ​ 多层感知机(MLP)是机器学习中拟合非线性函数的默认模型,在众多深度学习模型中被广泛的应用。但MLP存在很多明显的缺点:…

C语言队列的含义与队列数据操作代码详解!

引言:于本篇博客当中,我们将讲到数据结构——队列的有关知识。而对于这次的队列,我们将会在单链表的基础上实现。 更多有关C语言和数据结构知识详解可前往个人主页:计信猫 一,队列的含义 队列是一种特殊的线性表&#…

YOLOv8 Tensorrt Python/C++部署详解

按照大佬的方法进行部署,但是中间出现了很多问题,这里进行一下总结。 YOLOv8 Tensorrt Python/C部署教程_yolo 安装tensorrt-CSDN博客https://blog.csdn.net/weixin_45747759/article/details/130341118 Monday-Leo/Yolov5_Tensorrt_Win10: A simple i…

上线了《學點笔录》,更方便翻阅笔录

大家好,我是学点,整理了一下自己笔记、摘要、记录《學點笔录》并且上线了为更方便翻阅 https://code.yellowcan.cn 欢迎来我的學點笔录网站!笔录会关于与编程有关,比如bug记录、bug解决过程、编程笔记等等,帮助回忆阅…

【前端热门框架【vue框架】】——对组件进行更加简洁合理的处理和解释(一)

👨‍💻个人主页:程序员-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

八、VUE内置指令

一、初识VUE 二、再识VUE-MVVM 三、VUE数据代理 四、VUE事件处理 五、VUE计算属性 六、Vue监视属性 七、VUE过滤器 七、VUE内置指令 九、VUE组件 v-text 向其所在的节点中渲染文本内容。 (纯文本渲染)与插值语法的区别:v-text会替换掉节点中的内容,{{x…

HashMap前世今生

概述 HashMap是我们常用的一种数据结构,他是一个key-value结构。我们来深入了解一下。 1.8之前用的数组加链表 1.8之后用的数组加链表加红黑树,当链表数量大于8时,将链表转为红黑树。当红黑书节点小于6又会转为链表。 浅析HashMap的put()方…

C语言 循环控制流程的跳转语句

本文 我们来说 控制流程的跳转语句 C语言 提供三种 控制流程的跳转语句 1. break 语句 我们之前讲 switch 时 大家已经看到过这个 break 了 作用是跳出当前 switch 在循环中 它的作用也差不多 这里 我们举个生活中的例子 例如 我们在操场上跑步 计划跑十圈 但是 还没跑完 我…

压缩和归档库-LZ4介绍

1.简介 LZ4是一种快速的压缩算法,提供压缩和解压缩的速度,而牺牲了压缩率。它被设计用于快速的数据压缩和解压缩,特别是用于数据存储和传输。LZ4通常用于需要高速数据处理的场景,如数据库、日志文件处理和实时数据传输。 LZ4的特…

【LLM 论文】Least-to-Most Prompting 让 LLM 实现复杂推理

论文:Least-to-Most Prompting Enables Complex Reasoning in Large Language Models ⭐⭐⭐ Google Research, ICLR 2023 论文速读 Chain-of-Thought(CoT) prompting 的方法通过结合 few-show prompt 的思路,让 LLM 能够挑战更具…

上位机图像处理和嵌入式模块部署(树莓派4b和c++新版本的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 自己读书的时候是03年,学习c也是差不多04年开始,到现在基本上20年了。这20年过程当中,其实c的语言版本一直是在…

phpstudy(MySQL启动又立马停止)问题的解决办法

方法一:查看本地安装的MySQL有没有启动 1.鼠标右击开始按钮选择计算机管理 2.点击服务和应用程序 3.找到服务双击 4.找到MySQL服务 5.双击查看是否启动,如启动则停止他,然后确定,重新打开phpstudy,启动Mysql. 方法二&#xff…