- 博客(23)
- 收藏
- 关注
原创 小白必懂:计算机核心构件+体系结构全解析
本文在核心构件解析基础上,新增计算机体系结构、CPU内核、进程及程序虚拟地址空间等关键知识点,通过架构对比、内核原理、地址映射案例等通俗解析,搭配全流程联动场景,构建从硬件架构到软件运行的完整知识体系,小白也能轻松掌握
2025-11-11 18:48:10
594
原创 32位 vs 64位系统:小白也能看懂的深度解析
32位与64位系统的核心差异在于CPU处理数据的能力和内存支持范围。32位系统最大支持4GB内存,性能受限;64位系统支持更大内存和更高效的多任务处理。选择建议:老旧低配设备可考虑32位,2010年后配置建议选择64位系统。查看系统位数可通过"此电脑-属性"查看。64位系统是当前主流选择,兼容性更好且能发挥现代硬件性能。
2025-11-11 11:23:57
1961
原创 Linux环境下——Git 与 GitHub
本文介绍了Git与GitHub的核心概念与使用方法,包括:1)环境配置(Git安装、身份设置、SSH密钥配置);2)基础操作流程(本地仓库创建、文件暂存与提交、远程仓库关联与推送);3)分支管理策略(创建/切换分支、合并请求);4)常用命令速查(状态查看、版本回滚等)。文章同时总结了开发工具链(Vim/GCC/Makefile/Git)的综合应用要点,强调实操练习的重要性,并提供了进阶学习建议。
2025-11-10 17:01:36
324
原创 STM32 ——嵌入式 存储系统、时钟系统(F407 系列)
本文基于STM32F407芯片分析了嵌入式系统的两个核心组件:存储系统和时钟系统。存储系统详细介绍了SRAM、Flash等介质的分类特性,以及STM32F407的192KB SRAM分区架构。时钟系统阐述了时钟源种类、PLL倍频原理和RCC寄存器配置方法。全文通过表格对比和代码示例,系统性地讲解了嵌入式系统的存储层次和时钟树结构,为开发者提供了实用的技术参考。
2025-11-09 19:06:16
1209
1
原创 STM32—— 嵌入式微控制器入门
本文系统阐述了嵌入式系统的组成架构与核心处理器分类。嵌入式系统采用三层架构:硬件层(嵌入式处理器+外围设备)、中间层(BSP/HAL)和软件层(操作系统+应用组件)。重点分析了四类嵌入式处理器:MPU(高性能计算)、MCU(低功耗集成)、DSP(信号处理)和SoC(系统级集成),并详细介绍了ARM内核架构与各处理器的关联关系。以STM32F407为例,深入解析了其资源配置、总线架构和典型应用场景,展现了嵌入式系统的硬件设计原理与应用特点。全文为理解嵌入式系统核心技术提供了系统性参考。
2025-11-09 18:26:00
871
原创 Linux 进程间通信(IPC):管道、共享内存
本文详细介绍了Linux系统中的进程间通信(IPC)机制,重点解析了管道和共享内存两种核心方式。管道分为匿名管道(仅限亲缘进程)和命名管道(支持任意进程),实现了半双工通信;共享内存作为最高效的IPC机制,允许多个进程直接访问同一块物理内存。文章通过代码示例演示了这两种机制的具体实现,并分析了各自的特点和适用场景。最后简要介绍了其他IPC机制如信号、消息队列和UNIX域套接字,并提供了选型建议:根据进程关系、数据量和性能需求选择最适合的通信方式。
2025-11-06 20:51:43
821
原创 Linux——基础IO
本文全面解析Unix/Linux编程中的基础IO操作,涵盖C标准库文件IO和系统调用文件IO两个层面。首先介绍C标准库的fopen、fwrite、fread等带缓冲接口,详细讲解文件定位函数和标准流;然后深入系统调用的open、write、read等无缓冲接口,分析文件描述符本质和重定向原理。文章还阐述了"一切皆文件"的统一抽象设计,并通过文件拷贝等实战案例展示具体应用。最后提供sendfile零拷贝和多进程文件拷贝等进阶作业,帮助开发者从底层掌握IO操作技术。
2025-11-05 17:52:22
683
原创 冒泡排序算法
本文介绍了冒泡排序算法及其优化实现。冒泡排序通过相邻元素比较交换将最大元素"浮"至末尾,时间复杂度为O(n²),优化版本通过标志位检测提前终止排序,最好情况可达O(n)。文章详细解析了算法原理,提供了C语言实现代码及注释,分析了时间/空间复杂度(O(1)额外空间)和稳定性(稳定排序)。该算法实现简单直观,适合小规模或接近有序数据,但效率较低,大规模数据建议使用更高效的排序算法。冒泡排序作为入门算法,有助于理解交换排序的基本思想。
2025-11-03 14:30:00
296
原创 选择排序算法
选择排序通过每次选取最小和最大元素分别置于序列两端来排序。算法定义双指针begin和end,在区间内查找极值并交换位置,随后缩小排序区间直至完成。需注意当最大元素位于起始位置时的特殊情况处理。示例演示了对数组[3,44,...48]的排序过程,先交换最小元素2和最大元素50的位置,再逐步缩小区间重复操作。该算法逻辑简单但效率较低且不稳定。
2025-11-03 11:40:28
364
原创 希尔排序算法
摘要:希尔排序是插入排序的优化版本,通过"缩小增量法"提升效率。其核心思想是:首先按较大间隔gap分组并进行预排序,逐步缩小gap直至1,最后执行一次插入排序完成排序。示例展示了gap从4逐渐缩小到1的排序过程。代码实现采用gap=gap/3+1的间隔序列,包含分组排序和主排序函数。时间复杂度取决于gap序列,优化序列如Hibbard和Sedgewick可达到O(n^(3/2))或更好性能,远优于直接插入排序,实际应用中接近O(nlogn)级别。
2025-11-02 21:10:40
354
原创 插入 排序算法
本文介绍了排序的基本概念及插入排序算法的实现原理。排序是将无序序列转化为有序序列的基础操作。插入排序通过将元素逐个插入有序序列来实现排序,适合小规模数据。文章详细分析了插入排序的时间复杂度:最好情况(已有序)为O(n);最坏情况(完全逆序)和平均情况均为O(n²)。插入排序适合小规模或接近有序的数据,但不适合大规模无序数组。文中还提供了插入排序的C语言实现代码和具体示例。
2025-11-02 19:35:35
772
原创 嵌入式系统入门第一课
本文系统介绍了嵌入式系统的核心概念与技术全景。从定义解析入手,阐明嵌入式系统作为专用计算机系统在功能、架构和系统维度的特性,并与通用计算机进行对比分析。详细讲解嵌入式硬件架构,包括处理器类型和应用场景,以及最小系统与外设扩展的构建原则。在软件层面,剖析了从BSP/HAL层到应用层的分层设计体系,重点讨论了实时性要求差异。随后梳理了嵌入式技术从单机控制到互联智能的三代演进,并指出物联网、AI和工业互联网的融合趋势。最后提出学习路径建议,强调硬件、软件和工程三维知识体系的构建,以及场景需求导向的学习方法论。全文
2025-11-01 20:29:05
673
原创 数据结构——栈和队列
本文介绍了栈和队列两种基础数据结构。栈遵循后进先出(LIFO)原则,通过数组实现,包含初始化、入栈、出栈等操作接口。队列遵循先进先出(FIFO)原则,采用链表实现,包含入队、出队等基本功能。文章提供了完整的C语言实现代码,并对比了两种结构的特性差异:栈适合回溯场景(如递归),队列适合有序处理(如任务调度)。最后推荐了LeetCode相关练习题,帮助巩固数据结构应用。
2025-10-28 20:53:51
895
原创 哈夫曼树的实现与编码解码
哈夫曼树是一种带权路径长度最短的二叉树,通过合并权值最小的结点逐步构建而成。它具有无度为1结点、总结点数2n-1(n为叶子结点数)等特性。哈夫曼编码基于该树结构,利用不等长前缀编码实现数据压缩,高频字符对应短编码。C语言实现采用顺序存储结构,包含构建树、编码和解码三个核心函数。应用时需确保编解码使用相同的哈夫曼树结构,典型应用于ZIP、JPEG等压缩场景。该技术既解决了数据压缩问题,又体现了最优算法设计思想。
2025-10-22 20:46:25
880
原创 Linux文件与目录的相关操作
本文介绍了Linux系统下目录和文件的基本操作命令。目录操作包括:使用mkdir创建目录(单级/多级)、rmdir删除空目录、rm -r删除非空目录、cd切换目录以及ls查看目录内容。文件操作部分讲解了:touch创建空文件、nano/vim编辑文件、echo写入内容,以及rm删除文件(单文件/批量删除)。特别强调了rm -rf命令的危险性,提醒用户谨慎操作以避免误删重要数据。文章采用"精简版+详解版"结构,方便读者根据需求选择阅读深度。
2025-09-29 16:20:29
923
原创 Linux零帧起手
Linux环境配置与学习指南 本文系统介绍了Linux系统的学习路径和环境搭建方法。主要内容包括:1) Linux发展历史,2)主流发行版对比(Ubuntu适合开发,CentOS适合企业);3)三种环境搭建方案(物理机/虚拟机/云服务器),4) Linux文件系统结构与核心目录;5)用户权限管理(普通用户与root用户);6)终端工具XShell的远程连接配置;7)文件传输方法(SCP/lrzsz)。特别强调Linux命令行操作的重要性,建议新手从Ubuntu入手,掌握基础命令后再深入系统管理。
2025-09-29 11:02:56
931
原创 数据结构单链表的实现
摘要:本文详细介绍了单链表的概念、结构及实现方式。单链表由独立申请的节点组成,每个节点包含数据域和指针域,物理上不连续但逻辑上连续。文章对比了带头节点和不带头节点单链表的区别,并提供了完整的C语言实现代码,包括节点创建、插入、删除、查找等基本操作。通过结构体定义和指针操作,展示了单链表动态内存管理的特点及其相比顺序表的优势(插入删除高效、避免空间浪费)。
2025-09-26 16:48:22
1100
原创 数据结构顺序表详细讲解
本文主要介绍了线性表及其实现方式,重点讲解了顺序表的结构与操作。内容分为三部分:1. 线性表与非线性表的概念区分,说明线性表在逻辑上连续但物理存储不一定连续;2. 顺序表的实现细节,包括静态/动态顺序表的区别,以及malloc、calloc、realloc三种内存分配函数的使用方法;3. 完整展示了顺序表的C语言实现代码,包含初始化、增删改查等接口函数,并提供了相关算法题链接。最后指出顺序表存在插入删除效率低、扩容成本高和空间浪费等问题。全文以代码实现为核心,通过具体示例演示了顺序表的操作过程。
2025-09-21 21:28:04
390
原创 Python循环语句
Python循环结构详解:for循环用于遍历列表、字符串、字典等可迭代对象,通过range()生成数字序列;while循环在条件为真时重复执行。循环控制包括break终止、continue跳过和else子句。嵌套循环处理多维数据,enumerate()获取索引和值,zip()并行遍历,reversed()反向遍历,sorted()排序后遍历。合理使用循环可高效处理重复任务,避免代码冗余。
2025-07-20 15:18:47
317
原创 布尔类型和比较运算符
本文介绍了布尔类型及其运算,包括比较运算符(数值、字符串、对象身份、成员资格比较)和逻辑运算符(and、or、not)的使用方法。重点说明了布尔值的隐式转换规则(空值、0、空序列被视为False)以及运算符优先级(not > and > or)。文章通过示例展示了如何组合这些运算符构建条件逻辑,并建议使用括号提高代码可读性。这些基础概念是构建程序流程控制的关键要素。
2025-07-20 13:56:15
440
原创 Python判断语句
Python条件判断语句通过缩进划分代码块,主要包含if-else基本结构、多条件elif判断、嵌套判断和三元表达式。逻辑运算符(and/or/not)用于组合条件,其中False值包括False/None/0/空序列等。典型应用包括数值比较、字符串判空和闰年判断等。语法特点包括条件表达式后必须加冒号、使用缩进分层、else可选,以及value_if_true if condition else value_if_false的三元表达式结构。
2025-07-20 13:24:07
295
原创 Python中字符串的扩展
Python字符串操作指南:1.字符串定义支持单引号、双引号和三引号(可换行);2.字符串拼接用"+"号,但只能与字符串类型拼接;3.提供两种格式化方法:%占位符(%s字符串、%d整数、%f浮点数)和f-string(f"内容{变量}");4.格式化支持精度控制和表达式直接格式化;5.注意字符串与变量拼接时的类型限制,数字需先转换。
2025-07-20 12:29:40
370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅