从二进制到冯·诺依曼:微型计算机基础知识入门与课后习题精讲

📅 2026/7/14 11:33:27
从二进制到冯·诺依曼:微型计算机基础知识入门与课后习题精讲
1. 二进制与十进制计算机世界的语言转换计算机本质上只能理解0和1组成的二进制语言而人类更习惯使用十进制。这两种进制之间的转换是计算机基础中的基础。二进制转十进制的通用方法是按权展开求和。举个例子二进制数11001010B转换成十进制的过程是这样的从右到左给每一位编号从0开始1(7) 1(6) 0(5) 0(4) 1(3) 0(2) 1(1) 0(0)计算每一位的值该位的数字×2的位数次方1×2⁷ 1×2⁶ 0×2⁵ 0×2⁴ 1×2³ 0×2² 1×2¹ 0×2⁰计算结果128 64 0 0 8 0 2 0 202十进制转二进制则通常采用除2取余法。以十进制数25为例25 ÷ 2 12 余112 ÷ 2 6 余06 ÷ 2 3 余03 ÷ 2 1 余11 ÷ 2 0 余1将余数从下往上排列11001B常见错误点位数编号错误应该从右到左从0开始忘记最后一位的2⁰1转换时漏掉中间的0实用技巧记住2的幂次方值可以加快计算速度2⁰1, 2¹2, 2²4, 2³8, 2⁴162⁵32, 2⁶64, 2⁷128, 2⁸2562. 十六进制程序员的最佳伙伴十六进制0-9,A-F因其与二进制的天然对应关系1位十六进制4位二进制成为程序员最爱的进制表示法。十六进制转十进制同样采用按权展开法。以12CH为例从右到左编号1(2) 2(1) C(0)C在十六进制中表示12计算1×16² 2×16¹ 12×16⁰ 256 32 12 300十进制转十六进制使用除16取余法。以1470为例1470 ÷ 16 91 余14(E)91 ÷ 16 5 余11(B)5 ÷ 16 0 余5从下往上排列5BEH二进制与十六进制快速转换技巧二进制转十六进制从右往左每4位一组不足补零例10100100B → 1010 0100 → A4H十六进制转二进制每一位展开为4位二进制例3A8DH → 0011 1010 1000 1101B应用场景内存地址表示如0xFFFF0000颜色编码如#FF0000表示红色机器码和汇编指令表示3. BCD码数字的另一种编码方式BCDBinary-Coded Decimal码用4位二进制表示1位十进制数虽然浪费存储空间但便于十进制运算。标准BCD码转换每位十进制数转换为4位二进制例327 → 3(0011) 2(0010) 7(0111) → 001100100111B常见错误混淆BCD码与直接二进制表示忘记每位必须用4位表示使用超出9(1001)的编码扩展BCD码压缩BCD码用4位表示0-9非压缩BCD码用8位高4位为0表示0-9EBCDIC编码IBM大型机使用的8位BCD扩展编码实际应用金融系统避免二进制浮点数精度问题电子秤、计价器等需要精确十进制表示的设备实时时钟芯片时间通常以BCD格式存储4. ASCII码字符的数字化表示ASCII美国标准信息交换码用7位二进制数表示128个字符是计算机文本处理的基础。字符转换示例A → 65 → 01000001B → 41Ha → 97 → 01100001B → 61H0 → 48 → 00110000B → 30H字符串转换AboutA(41H) b(62H) o(6FH) u(75H) t(74H)959(39H) 5(35H)ASCII码表重要分区0-31控制字符如回车CR、换行LF32-126可打印字符字母、数字、标点127删除DEL128-255扩展ASCII不同系统定义不同常见问题混淆大小写字母编码相差32忘记数字0的编码是48不是0忽略不可见控制字符的影响5. 原码、反码和补码带符号数的表示计算机用最高位表示符号0正1负但具体表示方法有三种原码最高位为符号位其余为绝对值42 → 0 0101010B-42 → 1 0101010B反码正数同原码负数符号位不变其余位取反-42 → 1 1010101B补码正数同原码负数反码1-42 → 1 1010110B为什么使用补码解决了±0的问题补码中0只有一种表示加减法可以统一用加法器实现扩大了表示范围8位补码可表示-128~127转换练习 -85的表示原码1 1010101B最高位1表示负其余是85的二进制反码1 0101010B符号位不变其余取反补码1 0101011B反码1溢出判断同号相加结果符号相反 → 溢出异号相加不会溢出CPU有溢出标志位OF6. 冯·诺依曼结构现代计算机的基石冯·诺依曼提出的存储程序计算机结构至今仍是计算机设计的基础包含五大部件核心组成运算器ALU执行算术逻辑运算控制器取指令、译码、执行控制存储器存储程序和数据输入设备将信息输入计算机输出设备将结果输出工作流程程序和数据通过输入设备存入存储器控制器从存储器取指令控制器译码并发出控制信号运算器执行指令要求的操作结果存回存储器或通过输出设备输出重复2-5直到程序结束关键特征二进制表示存储程序原理顺序执行除非有跳转指令运算器为中心现代演变哈佛结构分离指令和数据存储器多核处理器多个运算核心缓存体系多级缓存提高速度并行计算突破顺序执行限制7. 计算机的硬件与软件硬件是物理设备软件是程序和数据两者缺一不可。硬件组成核心部件CPU、内存、主板存储设备硬盘、SSD输入设备键盘、鼠标输出设备显示器、打印机通信设备网卡、调制解调器软件分类系统软件操作系统Windows、Linux设备驱动程序工具软件编译器、调试器应用软件办公软件多媒体软件专业领域软件硬件软件关系硬件是躯体软件是灵魂软件通过硬件执行硬件性能决定软件运行效率软件需求推动硬件发展抽象层次物理层晶体管、电路逻辑层门电路、寄存器架构层指令集、微架构系统层操作系统、运行时应用层用户程序8. 编程语言的发展与分类计算机语言从低级到高级不断发展各有特点和应用场景。机器语言二进制指令代码计算机直接执行依赖特定硬件难编写、难维护示例0x90x86的NOP指令汇编语言助记符表示指令需要汇编器翻译接近硬件效率高可读性优于机器语言示例MOV AX, 0x1234高级语言接近自然语言和数学表达需要编译器或解释器可移植性好开发效率高示例C、Java、Python语言选择考量执行效率机器/汇编 C Java/Python开发效率Python Java C 汇编硬件控制汇编 C Java Python可移植性Python/Java C 汇编现代趋势领域特定语言(DSL)多范式融合即时编译(JIT)技术自动并行化9. 微型计算机的基本结构微型计算机采用总线结构连接各功能部件提高系统灵活性。核心组件微处理器CPU运算器算术逻辑运算控制器指令控制寄存器组高速存储存储器RAM随机存取易失性ROM只读非易失性缓存高速小容量I/O接口并行接口如LPT串行接口如COM专用接口如SATA总线数据总线双向传输数据地址总线单向指定地址控制总线传输控制信号典型芯片808616位1MB寻址8038632位4GB寻址现代CPU64位TB级寻址性能指标主频GHz级别字长64位主流寻址能力由地址总线宽度决定吞吐量单位时间处理能力10. 计算机术语解析计算机领域充满英文缩写理解这些术语对学习至关重要。核心术语ALUArithmetic Logic Unit算术逻辑单元CPU的核心部件执行加减乘除与或非等运算CPUCentral Processing Unit中央处理器计算机的大脑包含ALU、CU、寄存器等PCProgram Counter/Personal Computer程序计数器存放下条指令地址个人计算机微型计算机的俗称DOSDisk Operating System磁盘操作系统早期PC主流操作系统命令行界面总线类型数据总线传输数据双向地址总线指定内存位置单向控制总线传输控制信号存储层次寄存器最快容量最小缓存SRAM分多级主存DRAM易失性外存磁盘/SSD非易失性11. 8086与80386架构对比Intel处理器的发展反映了计算机技术的进步。8086特征16位架构20位地址总线1MB寻址空间16位数据总线无保护模式1978年发布80386特征32位架构32位地址总线4GB寻址空间32位数据总线引入保护模式1985年发布关键改进寻址能力80861MB2²⁰803864GB2³²寄存器宽度808616位通用寄存器80386扩展为32位EAX等工作模式实模式兼容8086保护模式现代OS基础虚拟8086模式运行多个DOS程序编程影响内存分段808616位段16位偏移80386保护模式平坦模型指令扩展32位操作数支持新增保护模式指令12. 数制转换实战技巧掌握快速转换技巧可以大大提高解题效率。二进制快速转十进制记住2的幂次方值对1的位快速相加例10100100B128 32 4 164十进制转二进制捷径找到最接近的2的幂次例134128(2⁷) 4(2²) 2(2¹)10000000 00000100 00000010 10000110B十六进制与二进制对应表0:0000 4:0100 8:1000 C:1100 1:0001 5:0101 9:1001 D:1101 2:0010 6:0110 A:1010 E:1110 3:0011 7:0111 B:1011 F:1111负数补码快速计算写出正数的二进制从右找到第一个1这个1左边的所有位取反例-424200101010第一个1在最右边左边全取反1101011013. 计算机工作原理深度解析理解计算机如何执行程序是掌握计算机原理的关键。指令周期取指阶段PC送地址总线存储器返回指令存入指令寄存器译码阶段指令译码器分析操作码确定操作数和操作类型执行阶段ALU执行运算内存或I/O访问结果写回寄存器或内存写回阶段将结果写入目标位置更新PC顺序或跳转性能优化流水线技术重叠执行多个指令阶段超标量多个执行单元并行乱序执行提高指令级并行度分支预测减少流水线停顿现代CPU特性多级缓存减少内存访问延迟多核并行线程级并行SIMD指令单指令多数据功耗管理动态频率调整14. 课后习题精解通过典型习题巩固所学知识掌握解题技巧。数制转换题二进制转十进制按权展开十六进制转十进制同样方法十进制转二进制/十六进制除基取余原反补码题正数三者相同负数原码符号位1其余绝对值反码符号位不变其余取反补码反码1ASCII码题查表或记忆常见字符编码大小写字母差3220H数字0是4830H冯氏结构题五大部分及其功能存储程序原理顺序执行流程硬件软件题硬件举例CPU、内存、硬盘软件分类系统、应用相互关系硬件是载体软件是灵魂15. 常见问题与误区学习过程中容易出现的错误理解和常见问题。数制转换误区混淆权值编号方向应从右向左从0开始忘记2⁰1导致计算结果少1十六进制A-F对应错误原反补码混淆认为负数补码就是原码取反漏了1忽略0和-0在原码中的不同表示补码范围理解错误8位是-128~127存储器理解错误混淆内存和硬盘不理解易失性概念忽略地址总线与存储容量的关系CPU工作误解认为时钟周期就是执行一条指令的时间不理解流水线技术混淆字长和寻址能力实用建议多画二进制位权图制作ASCII码速查表用实际数字验证转换结果理解而非死记硬背