【C++中阶教程0】内存/二进制/变量

C++中阶教程简介:

标题如此,但此系列面向任何编程语言或领域的观众,所有的计算机知识在原理上都是相通的,

旨在尽己之力,授人以渔。


学习需求:

1. 任意一门现代编程语言的语法基础
2. 英文基础(术语皆会使用英文,培养大家将来Google与阅读文档的能力)
3. 心如止水,持之以恒


此节内容是为学习指针内存管理打好基础,绝大多数现代语言都是隐藏了这些功能,但了解其机理的重要性无与伦比

当我们说内存(Memory)时,一般情况下是指RAM,即Random Access Memory,意味着你可以使用任意顺序去访问内存上的任意位置。其机制和1D Array完全一致。如下图对比:


1D Array有总房间数length间,每个房间装1个element,每个房间有对应门牌号index
在这里插入图片描述


Memory有总房间数size间,每个房间装1个location,每个房间有对应门牌号address,
每个房间里住的是1个byte(1byte = 8bit)

在这里插入图片描述


让我们来深入地看一下CPU是怎样与Memory运转的
CPU的核心电路有特殊的存储空间叫Registers,可以把它们理解为CPU用来做事情的N只手

int  c = b + a;

首先c b a会存储到Memory中,CPU会从Memory中读取它们然后拿到自己手里
在这里插入图片描述

在CPU的眼里,c b a都是不存在的,它只关心值是多少:

1. CPU读取address 27577,拿到9,放到一个Register里、CPU读取address 27576,拿到60,放到另一个Register里
2. CPU将一个Register的值传递给另外一个,并在另外一个上存储运算结果69
3. CPU将69存储到address 27578 (至此int c = b + a;执行结束)

小结:

RAM就是byte组成的Array,每个byte对应1个address,每个byte由8个bit组成


为了能够充分理解byte和bit,我们需要先搞清楚二进制(Binary)的概念:

电子元件有两种工作状态:ON OFF
在这里插入图片描述
bit是一种能够表达两种情况的符号或数值,也就是说bit可以

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值