- 博客(1268)
- 资源 (24)
- 收藏
- 关注
原创 计算机组成原理:动态随机存取存储器
🔋存储元原理:以1T1C(1个晶体管+1个电容)为最小单元,通过电容充放电存储数据,需周期性刷新维持数据,结构简单但集成度高;🧩芯片结构:包含存储元阵列、地址译码器(支持地址分时复用)、灵敏放大器、刷新控制电路等,多存储体设计支持并行操作;⏱️读写与刷新:读写依赖地址分时复用和时钟同步(SDRAM/DDR),刷新需通过集中/分散方式定期补充电容电荷,避免数据丢失;🚀性能优化:通过突发传输(连续读写)、双倍数据率(DDR)、多通道技术提升带宽,ECC校验保障数据可靠性;🧬特殊类型。
2025-09-14 08:40:05
808
原创 计算机组成原理:静态随机存取存储器
静态随机存取存储器(SRAM)凭借“无需刷新、高速读写”的核心优势,成为计算机高速缓存等对速度敏感场景的首选存储器件。🔬基本存储元阵列:以六管NMOS双稳态触发器为最小单元,通过行列排列形成存储元阵列,无需刷新即可保持数据,但单位容量成本高、集成度低;🧩SRAM逻辑结构:由存储元阵列、地址译码器、读写控制电路、I/O缓冲器和位线均衡电路组成,各模块协同完成地址解析、存储元定位和数据读写;⏱️读/写时序。
2025-09-14 08:39:39
826
原创 计算机组成原理:存储系统概述
存储系统是计算机硬件的核心组成部分,负责存储程序指令和数据,是CPU与外部世界进行数据交互的“桥梁”。从早期的磁芯存储器到现代的DDR5内存、NVMe固态硬盘,存储技术的演进直接推动了计算机性能的飞跃。一个高效的存储系统不仅需要满足“大容量”“高速度”的基本需求,更要在“速度”“容量”“成本”三者之间找到平衡——这正是存储系统设计的核心挑战。本文将系统解析存储系统的层次结构、存储器分类、编址方式及关键技术指标,揭示计算机“记忆”功能的底层逻辑。存储系统是计算机性能的“基石”,其设计与演进始终围绕“
2025-09-13 19:48:56
809
原创 计算机组成原理:浮点运算方法和浮点运算器
在计算机的数值运算体系中,定点运算仅能处理整数和有限范围的小数,而科学计算、工程模拟、金融分析等场景需处理“极大或极小”的数值(如宇宙星体质量、原子半径),且要求高精度,这就需要浮点运算(Floating-Point Arithmetic)。浮点运算通过“尾数+阶码”的科学计数法表示数值,可覆盖更广的数值范围(如IEEE 754单精度浮点数范围约为 (10−38∼103810^{-38} \sim 10^{38}10−38∼1038)),但其运算逻辑和硬件实现远比定点运算复杂。本文将系统解析浮点加法/减法、
2025-09-13 19:47:04
752
原创 计算机组成原理:定点运算器的组成
定点运算器作为计算机处理整数数据的核心组件,其组成体现了“功能集成化、结构并行化、控制程序化🔗逻辑运算:基于基本逻辑门实现位操作,是算术运算的辅助工具,支撑符号处理、溢出检测等关键步骤;🛠️ALU:通过可编程控制实现多种算术/逻辑运算,是运算器的“引擎”,其性能(延迟、吞吐量)直接决定运算效率;🔗内部总线:按单总线、双总线或三总线结构设计,决定数据传输的并行度,三总线结构因效率最高成为高端CPU的主流选择;🏗️整体结构。
2025-09-12 08:52:08
1083
原创 计算机组成原理:定点除法运算
符号位独立:商的符号由被除数与除数的符号异或得到,余数的符号与被除数相同;数值部分运算:仅对|X|(被除数绝对值)和|Y|(除数绝对值)执行除法,得到|Q|和|R|;溢出判断:若|X| ≥ |Y|,则商|Q| ≥ 1,超出n位定点数的表示范围(n位定点整数的数值部分为n-1位,最大值为2ⁿ⁻¹ - 1),发生“商溢出”;除零检测:若|Y| = 0,触发“除零错误”,需中断运算并提示异常。🔍原码除法算法。
2025-09-12 08:51:23
930
原创 计算机组成原理:定点乘法运算
📝基础逻辑:二进制乘法的本质是“移位+累加”,利用二进制仅含0和1的特性,简化运算步骤,为硬件实现奠定基础;🔍原码乘法:通过“符号位独立计算,数值部分无符号运算”,逻辑直观但需转换原码,适用于早期计算机的简单场景;⚡补码乘法:以布斯算法为核心,直接处理补码数据,减少部分积数量,适配现代计算机的补码存储体系,成为主流算法;🔌硬件演进。
2025-09-11 19:52:38
872
原创 计算机组成原理:定点加法、减法运算
当两个n位定点整数进行加减运算时,若运算结果的绝对值大于n位补码所能表示的最大值,或小于所能表示的最小值,即发生溢出。以8位补码为例:表示范围为-128 ~ 127,若运算结果为128或-129,均超出范围,发生溢出;本质原因:补码的位数有限,无法容纳超出其表示范围的数值,多余的位会被舍弃,导致结果错误。➕补码加法:通过“符号位与数值位一同运算”和“模2ⁿ处理进位”,成为计算机中唯一的加法规则,为减法转化奠定基础;➖补码减法。
2025-09-11 19:52:09
769
原创 计算机组成原理:数据与文字的表示方法
📋数据格式:按“数值型”与“非数值型”分类,为不同信息提供“存储容器”,平衡效率与需求;🔍数的机器码:通过补码解决负数运算难题,成为现代计算机数值表示的标准;🔤字符与字符串:从ASCII的英文局限到Unicode的全球通用,UTF-8成为跨平台字符表示的首选;📝汉字编码:从GB2312的基础国标到GB18030的全面覆盖,最终与Unicode/UTF-8接轨,实现全球化兼容;🔍校验码。
2025-09-10 11:30:26
1024
原创 计算机组成原理:计算机系统的层次结构
计算机系统并非单一的“机器”,而是由硬件与软件按“功能分层”构成的复杂体系。从底层的电子电路,到顶层的用户应用,每一层都有明确的职责,且通过标准化接口相互协作,最终实现“用户需求→数字指令→硬件执行”的完整转化。本文将拆解计算机系统的多级组成架构,解析各层级的核心作用,并揭示“软件与硬件逻辑等价”的底层规律,帮助读者理解计算机系统的工作本质。计算机系统的层次结构遵循“自下而上,功能抽象”的原则——底层负责硬件的物理实现,上层负责软件的逻辑封装,每一层都为上一层提供“简化的接口”,隐藏底层的复杂细节。这种分层
2025-09-10 11:29:59
1018
原创 计算机组成原理:计算机软件的基本组成
如果说计算机硬件是“看得见摸得着”的物理骨架,那么软件就是赋予其生命的“数字灵魂”。从开机时加载的操作系统,到日常使用的办公软件、游戏程序,再到支撑云计算的后台服务,软件通过一系列指令和逻辑,将硬件的算力转化为可感知的功能。本文将系统拆解计算机软件的组成与分类体系,梳理其从简单指令到复杂生态的发展脉络,带您理解“软件如何驱动硬件,构建数字世界”。计算机软件并非单一模块,而是由“系统级基础软件”和“应用级功能软件”构成的分层体系,各层级分工明确、协同工作,共同实现从“硬件控制”到“用户需求”的转化。其核心分类
2025-09-09 12:04:14
855
原创 计算机组成原理:计算机的发展史
技术迭代的核心逻辑:从电子管到人工智能芯片,从磁芯存储器到3D NAND,从单核CPU到异构计算,每一次突破都围绕“提升算力、降低成本、缩小体积、减少功耗”四大目标,而摩尔定律的持续推动(尽管放缓)是算力指数级增长的核心动力。硬件与软件的协同进化:硬件的进步为软件创新提供基础(如多核CPU推动多任务操作系统发展,GPU催生AI深度学习框架),软件的需求又反过来驱动硬件升级(如4K视频推动显卡带宽提升,AI大模型推动NPU专用芯片发展),二者形成“螺旋上升”的良性循环。未来发展的三大方向算力极致化。
2025-09-09 12:03:39
1382
原创 计算机组成原理:计算机的分类
从“通用”到“专精”:早期计算机追求“万能”的通用计算能力,如今逐渐向“通用计算机+专用加速器”的混合架构发展(如PC搭配GPU、服务器搭配TPU),通过“通用架构保障灵活性,专用硬件提升效率”;从“规模驱动”到“能效驱动”:过去按性能规模(微型→巨型)划分的边界逐渐模糊,取而代之的是“能效比”(每瓦功耗的算力)和“场景适配性”(如嵌入式计算机的核心指标是功耗,超级计算机的核心指标是浮点运算速度);从“经典”到“量子”的跨越。
2025-09-08 09:40:32
1473
原创 计算机组成原理:定点数的移位运算
🔍分类逻辑:逻辑移位面向无符号数,空位补0;算术移位面向带符号数(补码),空位补符号位,二者的根本差异是“是否处理符号”。⚖️乘除关联:左移等效于“乘2的幂”,右移等效于“除2的幂”,但需结合数的类型选择移位方式(无符号用逻辑移位,带符号用算术移位),同时规避溢出和精度损失。🛠️工程意义:在硬件设计和程序优化中,移位运算替代乘除指令可显著提升效率,是嵌入式开发、图形处理、内存管理等场景的核心优化手段。
2025-09-08 08:42:23
719
原创 计算机组成原理:计算机硬件的基本组成
🧩 五大功能部件(输入、输出、内存、运算器、控制器)构成了硬件系统的基本骨架,其协同逻辑始终围绕“高效处理数据”展开;🏛️ 冯·诺依曼结构的“存储程序”思想,让计算机从专用工具升级为通用设备,奠定了现代计算的基础;🔄 现代架构通过“存储器中心”优化、多核。
2025-09-06 18:24:20
830
原创 数据结构:查找
查找表(Search Table):由若干个数据元素(或记录)组成的集合,每个元素包含一个或多个属性,其中用于标识元素的属性称为“关键字”。关键字(Key):分为两类:主关键字(Primary Key):唯一标识一个数据元素(如身份证号、学号),通过主关键字查找时,结果要么唯一,要么不存在;次关键字(Secondary Key):非唯一标识(如姓名、年龄),通过次关键字查找可能返回多个满足条件的元素。查找操作。
2025-09-06 18:07:07
948
原创 数据结构:排序
排序是数据处理中最基础且核心的操作,通过按特定规则(如数值大小、字母顺序)重新排列数据,为高效查询、统计等后续操作奠定基础。从手机通讯录的按姓名排序,到数据库查询结果的按时间排序,排序算法的应用无处不在。堆是一棵完全二叉树大根堆:每个父节点的关键字 ≥ 其左右子节点的关键字(根节点为序列最大值);小根堆:每个父节点的关键字 ≤ 其左右子节点的关键字(根节点为序列最小值)。完全二叉树的下标规律下标为i的节点,左子节点下标为2i,右子节点下标为2i+1;下标为i的节点,父节点下标为⌊i/2⌋。
2025-09-05 23:11:42
1241
1
原创 企业培训笔记:宠物信息管理--实现宠物信息的删除
有了删除方法的声明,还需要编写具体的SQL语句来执行删除操作。这就像有了指令,还得有执行指令的具体步骤。--实现宠物信息删除--> < delete id = " deletePetMapper " parameterType = " java.lang.Integer " > delete from pet where id=#{id} </ delete >
2025-09-05 12:22:20
100
原创 企业培训笔记:宠物信息管理--实现宠物信息的更新
在宠物管理系统中,除了新增宠物信息外,更新已有宠物的信息也是核心功能之一。本文将详细介绍从后端接口开发到前端交互实现的完整流程,带你一步步完成宠物信息的更新功能。Mapper接口中的抽象方法需要通过XML文件编写具体的SQL逻辑来实现数据库交互。对于宠物信息更新功能,我们需要在中定义UPDATE语句,并通过动态SQL实现灵活的字段更新。
2025-08-21 01:03:30
130
原创 数据结构:图
图(Graph)是一种比树更复杂的非线性数据结构,它通过顶点和边的关系表达多对多的关联关系,广泛应用于社交网络、路径规划、电路设计等领域。图由顶点集和边集组成,记为G = (V, E)顶点集(V):由具有相同特性的数据元素组成的非空有限集合,每个元素称为顶点(Vertex);边集(E):由顶点之间的关系组成的有限集合,每条关系称为边(Edge)。无向图:边是无序对,记为(v, w),表示顶点v和w之间存在双向关系(如朋友关系);有向图:边是有序对,记为<v, w>
2025-08-12 23:39:57
760
原创 企业培训笔记:宠物信息管理--实现宠物信息的添加
在MyBatis中,Mapper接口的抽象方法需要通过对应的XML文件来编写具体的SQL语句,以实现与数据库的交互。对于上一步定义的方法,我们需要在中定义插入数据的SQL语句。--实现宠物信息保存--> < select id = " savePetMapper " parameterType = " com.soft.entity.Pet " > insert into t_pet values(null,#{pname},#{color},#{age}) </ select >
2025-08-12 23:28:56
297
原创 数据结构:树与二叉树
树是一种非线性数据结构,它通过层次化的关系组织数据,广泛应用于文件系统、数据库索引、人工智能等领域。与线性表的“一对一”关系不同,树的核心是“一对多”的层级关系。树(Tree)是由n(n≥0)个节点组成的有限集合。当n=0时,称为空树;有且仅有一个特定的节点称为根(Root),它没有前驱节点;其余节点可分为m(m≥0)个互不相交的有限集合T₁,T₂,…,Tₘ,每个集合本身又是一棵树,称为根的子树(Subtree)。示例。
2025-08-11 23:20:12
1295
原创 数据结构:串、数组与广义表
串(String),又称字符串,是由零个或多个字符组成的有限序列。通常记为S 是串名;双引号(或单引号)是串的定界符,不属于串的内容;aᵢ(1≤i≤n)是单个字符,称为串的元素;n 是串的长度,当 n=0 时称为空串(记为 “”)。串的核心特点是元素的同质性——所有元素都是字符,且元素间存在明确的顺序关系。例如,“Hello” 是长度为5的串,由字符 ‘H’、‘e’、‘l’、‘l’、‘o’ 组成。空串(“”)与空格串(" ")不同,空格串的长度为空格的个数(如 " " 长度为2);
2025-08-11 21:59:28
962
原创 数据结构:栈和队列
栈和队列是两种特殊的线性表,它们在操作上具有严格的限制,广泛应用于算法设计、系统开发等领域。栈(Stack)是一种限定仅在表尾进行插入和删除操作的线性表,其核心特点可概括为**“后进先出”(Last In First Out,LIFO)**。关键术语允许操作的一端称为栈顶(Top);另一端称为栈底(Bottom);插入元素的操作称为入栈(Push);删除元素的操作称为出栈(Pop);不含元素的栈称为空栈。示例:叠放的盘子,只能从最上方取放,最后放入的盘子最先被取出。数学描述。
2025-07-15 21:51:23
1061
原创 数据结构:线性表
由n(n≥0)个具有相同特性的数据元素组成的有限序列。有序性:元素之间存在明确的先后顺序,第一个元素无前驱,最后一个元素无后继,其余元素有且仅有一个前驱和一个后继(如数组[1,2,3]中,2的前驱是1,后继是3)。同质性:所有元素属于同一数据类型(如整数列表、字符串列表)。有限性:元素个数n为非负整数,当n=0时称为“空表”。线性表是现实世界中“序列关系”的抽象,例如学生点名册(按学号排序)、购物清单(按添加顺序)等均符合其特征。
2025-07-15 21:46:37
837
原创 企业培训笔记:宠物信息管理--实现宠物信息分页查询
基于SpringBoot+MyBatis+Vue3+Element Plus UI的前后端分离项目,实现对后台数据库中的宠物信息,在Vue前端页面可视化的进行数据呈现、删除、修改与添加。
2025-07-14 19:23:52
912
原创 企业培训笔记:axios 发送 ajax 请求
axios 是基于 Promise 的HTTP客户端,用于浏览器和 Node.js,是现代前端开发中最流行的请求库之一。核心特性浏览器与 Node.js 通用浏览器端基于,Node.js 端基于http模块。支持语法,避免回调地狱:const response = await axios.get('/api/data');拦截器可全局拦截请求和响应(如添加认证头、统一错误处理):axios.interceptors.request.use(config => {});请求取消使用。
2025-07-14 19:20:48
1271
原创 数据结构:导论
本文系统介绍了数据结构的核心内容,包括:(1)数据结构三大研究维度:数据组织形式、操作体系设计和性能优化理论;(2)基本概念与术语,如数据元素、逻辑结构(线性/树形/图状)和存储结构(顺序/链式);(3)抽象数据类型的表示与实现,并以栈为例说明;(4)算法特性与评价标准,重点分析时间/空间复杂度(大O表示法)。数据结构与算法互为支撑,是计算机科学的理论基础和实践工具,为复杂系统开发提供关键方法论。
2025-07-11 22:07:56
704
原创 企业培训笔记:Vue3前端框架配置
Vue3 开发环境搭建指南 本文详细介绍了Vue3框架的特性与开发环境配置流程。Vue3采用Proxy重构响应式系统,优化虚拟DOM,引入组合式API,显著提升性能与开发体验。环境搭建部分包含Node.js下载安装、镜像源配置、Idea项目导入等步骤,重点演示了Vue插件安装和npm运行配置方法。通过serve命令启动项目后,可成功访问默认Vue3界面。该指南为开发者提供了从零开始构建Vue3开发环境的完整解决方案。
2025-07-11 22:07:06
1549
原创 企业培训笔记: Mybatis 懒加载机制
MyBatis 的懒加载(Lazy Loading)是一种优化策略,允许在需要关联对象时再进行数据库查询,而非在主查询时立即加载所有关联数据。这种机制特别适用于一对多或多对多关系,可以显著提升查询性能。
2025-07-10 07:16:44
1140
原创 企业培训笔记: Mybatis实现多表查询输出映射
在实际开发中,业务场景往往需要关联多个数据库表进行查询,MyBatis 提供了灵活的多表查询输出映射机制,能够将多张表的数据映射到复杂的 Java 对象中。
2025-07-10 07:14:10
855
原创 企业培训笔记:MyBatis的输出映射
MyBatis 中的输出映射(Result Mapping)是指将 SQL 查询结果映射到 Java 对象的过程。当执行数据库查询后,MyBatis 需要将返回的结果集(ResultSet)转换为对应的 Java 对象,这个转换规则的定义就是输出映射。
2025-07-08 08:23:56
1045
原创 企业培训笔记:SpringBoot+MyBatis项目中实现动态SQL操作
动态 SQL 是 MyBatis 的核心特性之一,允许你在 XML 或注解中编写灵活的 SQL 语句,根据不同条件动态生成 SQL。它通过标签(如ifwhereforeachifwhereforeach等)和 OGNL 表达式实现条件判断、循环等逻辑,避免硬编码 SQL,提高代码复用性和可维护性。可替代<where><set>,通过属性灵活控制前缀、后缀。
2025-07-08 08:23:06
1011
原创 企业培训笔记:SpringBoot+MyBatis项目中实现分页查询
PageHelper 是一款针对 MyBatis 框架的开源分页插件,由国内开发者开发,旨在简化 MyBatis 中分页查询的开发流程。它通过拦截 SQL 执行过程,自动对查询语句进行分页处理,无需手动编写复杂的分页 SQL,极大提升了开发效率。-- 分页查询宠物信息 --></select>
2025-07-02 11:06:25
965
原创 企业培训笔记:SpringBoot+MyBatis 实现简易增删改查
2,新建entity包,右击【net.army】包——选择【New】——单击【Package】。1,新建mapper包,右击【net.army】包——选择【New】——单击【Package】。4,创建Pet类,右击【entity】包——选择【New】——单击【Java Class】。1,右击【resource】——选择【New】——单击【Directory】。3,右击【mapper】——选择【New】——单击【Java Class】。3,右击【mapper】——选择【New】——单击【File】。
2025-07-02 09:31:51
852
原创 编译原理——中间代码优化与目标代码生成
本文系统介绍了编译原理中的中间代码优化与目标代码生成技术。主要内容包括:1) 基本块、流图与循环的程序微观结构分析;2) 数据流分析基础方法,如到达定值、活跃变量分析等;3) 代码优化技术,涵盖窥孔优化、局部优化、循环优化和全局优化;4) 目标代码生成过程,重点讲解指令选择、寄存器分配和图着色算法。文章通过示例代码和流程图详细展示了各优化技术在编译器中的具体应用,为理解现代编译器的工作原理提供了系统性的技术框架。
2025-06-30 22:16:45
1197
原创 编译原理——运行时存储组织与内存管理
运行时存储组织是编译器后端的"内存管家",核心使命是在程序运行时高效管理内存资源。空间规划师:将内存划分为代码区、数据区、栈区、堆区等逻辑区域,各司其职(如代码区存指令、栈区管函数调用);生命周期管理员:根据变量作用域(全局/局部/动态)分配存储策略,确保数据"生得其所,死得其时";地址翻译官:将符号地址(如变量名count)映射到物理内存地址,支持程序正确读写数据。当函数套娃(如inner的活动记录SL指向outer的活动记录;访问outer的x时,沿SL链直接去outer账本取数;
2025-06-30 22:13:58
1302
原创 编译原理——静态语义分析和中间代码生成
摘要: 本文系统介绍了编译原理中静态语义分析和中间代码生成的核心环节。静态语义分析通过符号表进行类型检查、作用域验证等任务,确保程序语义正确性。中间代码生成将源程序转换为AST、三地址码等中间表示形式,为目标代码生成奠定基础。文章详细解析了符号表的结构与实现方式(数组/链表/哈希表)、作用域管理机制,以及PL/0编译程序中的符号表设计实例,并阐述了多遍扫描方法在编译流程中的分工优势。这些关键步骤共同构建了从源代码到可执行代码的桥梁。
2025-06-28 22:32:14
1095
原创 数据结构:最小生成树—Prim(普里姆)与Kruskal(克鲁斯卡尔)算法
维度Prim 算法Kruskal 算法贪心策略顶点扩展边排序数据结构优先队列(最小堆)并查集时间复杂度(O(E \log V))(堆优化)(O(E \log E))(排序主导)适用图类型稠密图稀疏图。
2025-06-28 22:21:52
1356
原创 数据结构:图—AOE-网题型解析
AOE-网通过量化活动依赖关系和时间参数分析,将工程管理从“经验驱动”转化为“数据驱动”。无论是建筑工程、软件开发还是项目调度,掌握关键路径分析都能帮助精准把控进度,避免因活动延误导致的全局风险。💡 下期将拆解更多数据结构实战案例,欢迎关注~
2025-06-17 10:05:15
905
notepad++安装程序
2024-12-27
Git基础入门学习教程
2023-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人