- 博客(8)
- 收藏
- 关注
原创 虚拟内存的总结
以单片机举个例子,单片机是没有操作系统的,所以每次写完代码,都需要借助工具把程序烧录进去,这样程序才能跑起来。但是单片机的cpu是直接操作内存的物理地址如果一个新的程序要在在 2000 的位置写入一个新的值,那么上一个程序存放在相同位置上的所有内容会被覆盖掉。所以同时运行两个程序是根本行不通的,这两个程序会立刻崩溃。这里面的关键问题是这两个程序都引用了绝对物理地址,而这正是我们最需要避免的。为了解决这一个问题,操作系统把进程所使用的地址隔离开来。操作系统为每个进程分配独立的一套。
2025-06-11 00:16:59
1219
原创 cpu是如何执行程序的
程序就是一条条指令,因此程序的执行过程就是cpu把每一条指令一步一步的执行起来.1、cpu读取程序计数器里的数值,这里面存储的是即将执行的指令的,接着cpu的控制单元操作指定需要访问的内存地址,接着通知内存设备准备好数据,准备好的数据通过将数据传输到里2、(一般是在取值完成后自增,流水线架构)表示指向下一条指令的地址,这个自增的大小由cpu的字长来决定,比如是32位cpu,指令是4字节,需要4个内存地址存放,程序计数器的值就会增加4,同理64位就增加83、
2025-06-10 10:45:30
733
原创 硬件的结构
计算机的5个基本结构分别是:运算器、控制器、存储器、输入设备、输出设备,这 5 个部分也被称为冯诺依曼模型。运算器,控制器是在中央处理器里面的,存储器就是内存,输入设备就是键盘之类的,输出设备就是显示器之类的,存储单元和输入输出设备作为整体要和中央处理器联系的话,就离不开总线了,总线有控制总线,地址总线,数据总线。接下来我将介绍内存,中央处理器,输入输出设备,总线。
2025-06-09 17:28:26
658
原创 C语言指针(二)
本质:指针数组是一个数组,数组中的每个元素都是指针类型 *数组名[数组大小];// arr 是一个数组,包含 5 个 int 指针注意它和数组指针的区别,数组指针本质上是指针,它的形式是:类型 (*指针变量)[数组大小];就是在指针变量了加了一个括号,提高优先级,防止被编译器误会区分:对于int* arr[5],可以理解arr是一个包含 5 个int*(整数指针)的数组。对于int (*p)[5],可以理解为p是一个指针(括号优先级高),然后指向int[5]的数组类型 *函数名(参数列表)示例。
2025-03-28 21:27:05
959
原创 C语言time.h里部分函数
在 C 语言中,<time.h>头文件提供了与日期和时间相关的功能。通过这个头文件,可以获取当前时间、处理时间、进行时间计算等操作。
2025-03-28 20:52:40
882
原创 C语言指针(一)
计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如int 占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。我们将内存中字节的编号称为地址 (Address) 或指针 (Pointer)这里只是对指针的一部个人理解,关于指针剩下一部分会在后续写到,欢迎大家指正。
2025-03-21 19:20:05
1072
原创 你真的了解浮点型吗?
0.1和0.2的二进制表示0.1 ≈ 0.0001100110011001100110011001100110011001100110011...(循环)0.2 ≈ 0.0011001100110011001100110011001100110011001100110...(循环)0.1 + 0.2在计算机中实际存储的值由于0.1和0.2不能被精确表示,它们在计算时的 误差会累积,导致0.1 + 0.2不等于0.3。
2025-03-19 23:29:23
906
原创 C语言的3个输入函数
特性scanfgetchar()fgets()基本功能从标准输入中读取格式化数据。从标准输入中读取一个字符。从标准输入中读取一行字符,直到换行符或文件结束。输入类型支持多种格式,如%d%s%f等。只读取一个字符。读取一行字符,包括空格,直到遇'\0'符或文件结束。空格和换行符的处理会跳过空白字符(包括空格、换行符、制表符等),但不包含在输入值中。会读取并返回字符,包括空白符和换行符。会读取换行符(\n)并包括在输入中。缓冲区的处理留下换行符(\n。
2025-03-18 23:01:42
665
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人