计算机组成原理|数据与文字的表示方法
前言在计算机硬件体系当中所有信息都不能以我们人类熟悉的十进制数字、汉字、符号直接存在硬件里面。不管是数字计算、文本信息最后全部要转换成为二进制比特串。第二章作为整本书承上启下的关键章节一边衔接第一章计算机系统概述的硬件基础另一边为后面第三章存储器、第四章指令系统打下底层基础。本章主要分为两大模块第一模块是各类数据的表示方式包含定点数、浮点数、四种机器编码、字符汉字编码、校验码第二模块围绕定点、浮点运算展开讲解运算规则、硬件实现思路。一.数据格式定义数据格式用来规定二进制编码当中小数点所处的位置计算机分为定点数与浮点数两大类型。**小数点在二进制编码里面并没有真实硬件存储点位**依靠人为约定规则确定位置。这是很多同学容易踩坑的考点小数点是逻辑约定不是真实存在某一个bit位。1. 定点数定点数指小数点位置是预先固定约定好在运算全过程当中小数点位置不会发生任何改变。定点数又细分为定点整数与定点小数。**定点整数**约定小数点位置在全部数值比特的最右侧。所有二进制位全部用来表示整数的数值**符号位放在最高位。**举例子8位字长定点整数最高1位符号位剩下7位存数值能够表示整数范围‑127~127原码。**定点小数**约定小数点位置放在符号位和数值位中间。也就是说最高位是符号紧接着就是逻辑小数点后面全部比特代表小数部分定点小数只能够表示绝对值小于1的小数。概念因果推导✅优点定点数硬件实现电路十分简单控制逻辑少硬件成本低。❌缺点**表示数值的范围非常有限。**如果既要处理很大整数又要处理很小小数定点数很难兼顾。互推关系硬件追求简单低成本 ⇒ 使用定点数需要处理跨度很大的数值定点数就会出现溢出需要引入浮点数。2.浮点数现实场景当中科学计算会遇到极大或者极小数字定点数远远不够使用于是设计浮点数。**M**尾数代表有效数字部分**E**阶码代表小数点移动多少位决定数值范围。尾数本身是一个定点小数阶码是定点整数。浮点数把数值拆分成两部分独立存储。**规格化浮点数**为充分利用尾数有效比特规定尾数最高数值位必须为1。规格化的目的避免有效数字浪费保证同一个数字只有唯一编码。推导关系阶码E位数越多 ⇒ 可以表示的数值范围越大尾数M位数越多 ⇒ 数值精度越高浮点数硬件代价需要分别对阶码、尾数两套部件运算对比定点数电路复杂度明显上升。3. 原码、反码、补码、移码**定义**机器码真值就是我们日常书写十进制数字机器码是真值映射之后存储在计算机内部二进制编码。同一个真值可以拥有四种不同机器码形式**原码、反码、补码、移码。**考试高频计算题经常要求四种编码互相转换。1. 原码**正数符号位填0**后面数值位直接抄写真值绝对值二进制。**负数符号位填1**后面数值位抄写真值绝对值二进制。原码特点原码不能直接做减法运算。如果硬件直接使用原码减法电路设计会非常复杂。2. 反码正数的反码与原码完全一模一样。负数反码符号位保持1不变所有数值位逐位按位取反0变11变0。重点**反码不会被计算机硬件直接拿来运算**它仅仅是一个中间过渡编码作用是用来求取补码。很多同学做题会混淆误以为计算机运行依靠反码这是典型易错考点。3. 补码计算机实际使用编码正数补码和原码、反码三者完全相等。负数补码符号位不变数值位取反之后整体再加1。补码两大核心优势第一点零的编码唯一不存在正负两个0第二点可以把减法运算等价转换成为加法运算。重大推导关系补码 ⇒ 减法变加法 ⇒ CPU硬件只需要一套加法器不需要单独设计减法器极大简化ALU硬件。这就是现代计算机全部采用补码存储运算的根本原因。4. 移码移码也叫增码计算方式真值加上一个固定偏移量。移码和补码关系两者除符号位完全相反其余全部比特一模一样。移码专门给浮点数阶码使用。为什么阶码要用移码因为移码可以直接使用无符号数硬件比较大小不需要额外判断符号硬件判断阶码大小更加简单高效。4. 字符与字符串的表示方法计算机不仅仅要处理数字还需要处理字母、符号这类非数值数据。字符本身是图形符号硬件只能保存二进制因此必须完成编码映射。**ASCII码**7位二进制编码一共128个编码。其中包含大小写英文字母、阿拉伯数字还有回车、退格等不可见控制字符。在内存存储的时候一个ASCII字符占用完整1字节8bit最高位补0填充。字符串就是一串连续的ASCII字符在内存当中按照顺序连续存放。不同编程语言字符串结束标记规则不一样有的增加结束符有的单独记录字符串长度。概念流转关系可视化字符符号 → ASCII二进制编码 → 内存字节连续存储形成字符串。5.汉字的表示和编码汉字系统远比英文ASCII复杂汉字数量巨大几千常用汉字。一套编码无法同时搞定输入、交换、存储、显示打印因此划分四类编码每一类编码对应一个工作阶段各司其职。很多考题会考四类编码的作用、互相之间转换关系。1. 输入码面向人输入使用。我们键盘打字拼音、五笔都属于输入码。同一个汉字可以拥有多种不同输入码。输入码任务把键盘按键序列转换成对应的汉字。**2. 国标码**汉字信息交换编码。作用不同电脑、不同设备之间传递汉字数据统一交换标准。**3. 机内码**计算机内存里面实际存放汉字的编码。国标码经过字节偏移处理得到机内码。一台计算机内部全部使用机内码保存汉字。**4. 字形码**点阵图形编码。机内码仅仅代表是哪一个汉字但是看不到长什么样子。字形码保存汉字点阵像素信息屏幕显示、打印机输出的时候调用字形码画出汉字。完整因果链条键盘敲击产生输入码 → 转换为国标码 → 偏移得到机内码存入内存输出汉字时拿机内码去查找字形码渲染点阵图形输出。6. 校验码**定义**存储器读写、数据总线传输过程电路会受到电磁干扰二进制比特有可能发生翻转0变成11变成0。校验码就是附加一组冗余二进制位用来检测数据传输存储过程当中是否出现错误。二.奇偶校验码在原始数据基础上增加1位奇偶校验位。奇校验整体二进制里面1的总个数为奇数偶校验整体1总个数为偶数。接收端重新统计1的数量判断是否出错。局限性仅仅能够检测奇数个比特发生翻转如果同时两位出错奇偶校验无法发现。奇偶校验只检错没有纠错能力。硬件简单成本低。三.CRC循环冗余校验码原始数据后面追加多位校验余数。检错能力远强于奇偶校验广泛用于磁盘、网络通信。部分场景不仅检测错误还可以自动纠正部分比特错误。推导逻辑硬件信道存在噪声干扰 ⇒ 比特存在出错概率 ⇒ 需要增加冗余校验码提升系统可靠性。校验码靠增加额外比特冗余换取可靠性提升。四. 定点加法、减法运算计算机内部全部运算基于补码完成。定点数运算就是对补码形式二进制进行运算.1. 补码加法运算规则符号位和数值位完全同等看待一起参与二进制加法运算。相加之后得到的结果依旧是补码格式直接可以拿来继续参与后续运算。不需要分开处理符号和数值这是补码一大优势。2. 补码减法求[-y]{补}操作对[y]{补}全部二进制位包括符号位在内逐位取反整体再加1。这个操作称之为求补运算。**核心逻辑**减法运算不在硬件单独实现把减法等价转换成加上减数负数的补码。加法器一套硬件同时实现加法与减法简化ALU硬件设计。3.溢出概念与检测方法***定义**溢出运算结果超出当前机器字长可以表示数值范围得到错误运算结果。⚠️一定要区分进位不等于溢出。进位只是最高位向外多出比特溢出代表结果数值已经失真错误。溢出两种判断手段**1. 符号位判断法**只有两个同符号数相加才会溢出。正数正数结果符号变成负数负数负数结果符号变成正数判定溢出。推论一正一负两个数字相加永远不会发生溢出。**2. 进位判断法**观察符号位产生进位和最高数值位产生进位。**两者不相等**判定溢出。易错点溢出属于考试高频选择题很多同学把进位当成溢出做题反复出错。五. 加法器加法器是ALU最核心基础部件所有加减乘除最终都依赖加法器。1. 行波进位加法器*低位产生进位一级一级向高位传递。低位算完产生进位高位才可以开始计算。因果特点电路简单硬件门数量少。但是运算延迟大二进制位数越多等待进位时间越长运算速度慢。2. 先行进位加法器并行进位不再等待低位进位传递依靠额外组合逻辑电路直接提前一次性算出全部位进位信号。推导关系增加更多与或门硬件开销消除进位等待时间大幅度提升加法运算速度。现代CPU当中普遍使用先行进位方案。3. 定点乘法运算原码一位乘法计算机硬件不会直接设计复杂乘法电路为节约硬件乘法运算拆解为重复加法加上移位操作。原码一位乘法符号位与数值部分分开处理。符号位两个乘数符号位进行异或运算得到乘积最终符号。数值部分取两个数绝对值循环执行加法、右移操作。运行逻辑依次查看乘数每一位如果当前位为1就把被乘数加到部分积如果为0不加。完成之后整体右移循环直到乘数全部比特处理结束。推导关系乘法 ⇋ 多次加法移位复用加法器硬件不需要专门独立乘法硬件。4. 定点除法运算除法同样复用加法器硬件转化成为加减运算配合移位操作。分为恢复余数法、不恢复余数法加减交替除法。**1. 恢复余数法**每一步拿余数减除数如果得到余数小于0代表不够减必须把除数再加回来也就是恢复余数之后再移位。缺点流程步骤不固定控制逻辑复杂硬件实现麻烦。**2. 不恢复余数法又叫加减交替除法。**不再做恢复余数步骤。余数为负不需要恢复直接移位之后下一步改成加除数。整套算法步骤规整统一控制电路简单是计算机硬件实际使用方案。概念互推除法运算等价反复加减、移位操作复用ALU加法器硬件资源。5. 定点运算器的组成**定义**定点运算器是CPU内部负责算术运算、逻辑运算的硬件部件。三大核心组成ALU算术逻辑单元、通用寄存器组、内部总线。**1. ALU算术逻辑单元**运算核心既可以做加减算术运算也可以完成与、或、非、异或逻辑运算。**2. 通用寄存器组**存放原始操作数、运算中间结果。访问速度远远快于内存。**3. 内部总线**一组公共的数据传输通路。各个部件通过总线互相传递数据减少独立信号线数量简化硬件布线。完整数据流动流程通用寄存器的数据放到内部总线输送给ALUALU完成运算运算结果再经由内部总线写回到通用寄存器。数据来回流动完成整套运算。6. 浮点运算方法和浮点运算器浮点数 NM*2^EM尾数E阶码尾数规格化存储阶码使用移码保存。浮点数加减法不能直接尾数相加必须严格执行固定五步流程。**1. 对阶**两个浮点数阶码不一样尾数不能直接加减。把阶码统一规则**小阶向大阶对齐尾数右移。**禁止大阶向小阶对齐会直接丢失高位有效数字数据彻底失真。**2. 尾数加减**尾数本身是定点小数使用补码完成加减法运算。**3. 规格化处理**加减之后尾数有可能不再满足规格化要求需要左规或者右规调整尾数和阶码重新回到规格化格式。**4. 舍入处理**尾数右移的时候低位比特被丢弃需要舍入算法补偿误差常见0舍1入法。**5. 溢出判断**浮点数溢出只看阶码和尾数无关。尾数出现溢出可以通过规格化修复阶码超出存储范围才是真正浮点数溢出。高频考点总结尾数溢出可修复阶码溢出代表浮点数真正溢出。第二章章节小结第二章整体知识链路现实数值 → 二进制编码 → 四种机器码 → 定点加减乘除运算 → 运算器硬件结构 → 浮点数整套运算流程。补码核心意义减法转换加法硬件只需要加法器。乘除法硬件思想转化加法移位复用ALU。溢出区分进位浮点数溢出看阶码。汉字四类编码分工不同输入码、国标码、机内码、字形码各司其职。校验码依靠冗余比特检测传输存储错误。本篇实际字数4462

相关新闻

MySQL 定时 DDL 导致 mysqldump 备份失败:场景模拟、排查与优化建议

MySQL 定时 DDL 导致 mysqldump 备份失败:场景模拟、排查与优化建议

1. 问题背景生产环境中,MySQL 数据库每天凌晨 2 点执行定时 DDL 操作(如新增索引、修改表结构),随后触发 mysqldump 逻辑备份任务,但备份经常失败。本文通过模拟该场景,分析失败根因,并给出可落…

2026/10/18 13:45:06 阅读更多 →
前端教学3:文字中嵌入图片的几种方法

前端教学3:文字中嵌入图片的几种方法

图片嵌入文字的几种方法 图片与文字的排版关系&#xff0c;是网页设计中的基础技能。下面按"从简单到复杂"的顺序&#xff0c;逐一讲解每种方法的特点、代码和适用场景。 一、直接插入法&#xff08;<img> 行内图片&#xff09; 原理 <img> 是行内块…

2026/10/18 13:45:06 阅读更多 →
基于Python-CNN的玉米粒品质检测:图像分类模型实战指南

基于Python-CNN的玉米粒品质检测:图像分类模型实战指南

简介&#xff1a;这是一份基于 Python 与 PyTorch 的 CNN 玉米粒品质检测完整工程&#xff0c;面向入门深度学习的开发者、农业视觉方向研究者或需要快速搭建图像分类实训项目的学生。包内共256个文件&#xff0c;包含250张用于训练验证的玉米粒图像、3份环境说明与数据集标注文…

2026/10/18 13:45:06 阅读更多 →

最新新闻

Qt开发欧姆龙FINS上位机:协议解析、TCP封装与工业部署实战

Qt开发欧姆龙FINS上位机:协议解析、TCP封装与工业部署实战

简介&#xff1a;本资源是一套基于Qt框架开发的欧姆龙FINS协议上位机完整源码工程&#xff0c;面向工业自动化领域的嵌入式/上位机开发者及PLC通信初学者&#xff0c;解决跨平台PLC数据读写、协议封装与GUI快速构建等核心问题。压缩包共18个文件&#xff0c;含4个关键.cpp实现文…

2026/10/18 14:23:31 阅读更多 →
世界模型新突破:偷懒率下降85.7%

世界模型新突破:偷懒率下降85.7%

强化实例与跨帧一致性 世界模型预测机器人操作过程时&#xff0c;能否保持目标的物理一致性&#xff0c;避免无故复制、消失或形变&#xff1f; 目前的主流方法&#xff0c;是以预训练视频生成模型为基础&#xff0c;在机器人操作数据上进行监督微调&#xff08;SFT&#xff…

2026/10/18 14:23:31 阅读更多 →
基于Dify与MCP搭建智慧出行助手的完整实战

基于Dify与MCP搭建智慧出行助手的完整实战

最近在折腾 Dify MCP 这个组合&#xff0c;发现拿它做一个智慧出行助手&#xff0c;比想象中顺手太多。所谓智慧出行&#xff0c;通俗讲就是让 AI 根据你的自然语言描述&#xff0c;自动完成查路况、找路线、看天气、比交通方式这一整套动作。这篇我会把从零搭建的完整过程、踩…

2026/10/18 14:23:31 阅读更多 →
黄仁勋谈中国 AI 公司:算力越缺,越逼着他们把架构做到极致

黄仁勋谈中国 AI 公司:算力越缺,越逼着他们把架构做到极致

黄仁勋的短视频推荐页里有什么&#xff1f;AI、炒饭、狗狗&#xff0c;还有大熊猫 “嘿&#xff0c;大家安静&#xff01;张忠谋打电话来了&#xff01;” 接到这通电话时&#xff0c;黄仁勋办公室外面的员工正在玩第一代 PlayStation&#xff0c;笑声、喊声混成一片。而他已…

2026/10/18 14:23:31 阅读更多 →
wewin268a打印机驱动安装与ESC/POS底层调试指南

wewin268a打印机驱动安装与ESC/POS底层调试指南

简介&#xff1a;本资源为伟文&#xff08;Wewin&#xff09;Wewin268A型号标签打印机的官方最新版驱动安装包&#xff0c;专为使用该硬件的中小企业用户、仓储物流标签打印人员及设备维护技术人员设计&#xff0c;解决驱动缺失导致的无法识别、打印模糊、指令不响应等常见兼容…

2026/10/18 14:23:31 阅读更多 →
MySQL 5.7.40离线安装包部署指南:glibc2.12兼容与生产级配置

MySQL 5.7.40离线安装包部署指南:glibc2.12兼容与生产级配置

简介&#xff1a;本资源为MySQL 5.7.40官方二进制离线安装包&#xff0c;专为x86_64架构、glibc 2.12及以上版本的Linux系统设计&#xff0c;面向数据库运维工程师、Linux系统管理员及后端开发人员&#xff0c;解决无外网环境下的MySQL快速部署与初始化问题。压缩包共379个文件…

2026/10/18 14:22:30 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →