计算机组成原理(二)——数据的表示和运算

二、数据的表示和运算

2.1 数制与编码

2.1.1进位计数制


十进制计数法

有0~9,共10种符号,逢十进一

r进制计数法

基数:每个数码位所用到的不同符号的个数,r进制的基数为r

二进制:0,1
①可使用两个稳定状态的物理器件表示
②0,1正好对应逻辑值假、真。方便实现逻辑运算
③可很方便地使用逻辑门电路实现算术运算

任意进制→十进制

二进制←→八进制、十六进制





真值:符合人类习惯的数字
机器数:数字实际存到机器里的形式,正负号需要被“数字化”

2.1.2 定点数的编码表示

定点数:小数点的位置固定      Eg:996.007 ——常规计数
浮点数:小数点的位置不固定   Eg:9.96007*10^2 ——科学计数法

无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。
通常只有无符号整数,而没有无符号小数.


有符号数的定点表示

注:可用原码、反码、补码三种方式来表示定点整数和定点小数。还可用移码表示定点整数。
若真值为x,则用[×]原、[x]反、[x]补、[]移分别表示真值所对应的原码、反码、补码、移码

原码:用尾数表示真值的绝对值,符号位“0/1”对应“正/负”


若机器字长为n+1位,则尾数占n位

反码:若符号位为0,则反码与原码相同若符号位为1,则数值位全部取反
“反码”只是“原码”转变为‘补码”的一个中间状态,实际并没有什么用

补码: 正数的补码 = 原码
            负数的补码 = 反码末位+1(要考虑进位)
            将负数补码转回原码的方法相同:尾数取反,末位+1

移码:补码的基础上将符号位取反。注意:移码只能用于表示整数


2.1.3(拓展)各种码的作用

模运算的性质:带余除法——设x,m∈Z,m>0则存在唯一决定的整数q和r,使得
        x=qm+r,0≤r<m                余数的定义

加减运算

2.2 运算方法和运算电路

异或运算的妙用: n bit进行异或,若有奇数个1,则异或结果为1;若有偶数个1,则异或结果为0

门电路的变形画法

2.2.1_1加法器

加法器的基本功能

例:7+12=19
用8bit表示被加数A、加数B、和S 

|

缺点:
进位信息是串行产生的,计算速度取决于进位产生和传递的速度。位数越多,运算速度越慢。

注1:电信号到达稳态需要一定时间,因此进位产生速度会有延迟。
注2:串行进位又称为行波进位,每一级进位直接依赖于前一级的进位,即进位信号是逐级形成的。

由于两个输入端允许并行输入n bit,因此这种加法器属于:并行加法器
由于进位信息是串行产生的,因此从“进位方式”看,这种加法器属于:串行进位加法器

综上,很多教材把这种加法器称为“串行进位的并行加法器”

并行进位的并行加法器:所有进位信息都是同时产生的,几乎没有延迟。
特点:运算速度比“串行进位的并行加法器”更快。

OF(Overflow Flag)溢出标志,用于判断带符号数加减运算是否溢出。OF=1溢出;OF=O未溢出
SF(Sign Flag)符号标志,用于判断带符号数加减运算结果的正负性。SF=1结果为负;SF=0结果为正ZF(Zero Flag)零标志,用于判断加减运算结果是否为0。ZF=1表示结果为0;ZF=0表示结果不为0
CF(Carry Flag)进位/借位标志,用于判断无符号数加减运算是否溢出。CF=1溢出;CF=0未溢出

标志位的生成 (电路图不需要掌握,概念需要搞懂)


2.2.1_2并行进位加法器



2.2.1_3多路选择器、三态门

多路选择器( multiplexer,MUX)

作用:电路的“守门员”。在多个输入数据中,只允许其中一个数据通过MUX。

图形:通常用“梯形”表示,有多个输入、一个输出、一个控制信号(梯形的更长的一边是输入端、更短的一边是输出端)

若有k个输入,则控制信号的位数m ≥ log2k bit

注:在电路图中,控制信号常用英文缩写“XXXop”表示,图形常用“虚线箭头”

三态门
作用:电路的“守门员”。根据控制信号决定是否让输入的数据通过。

图形:小三角。有一个输入、一个输出、一个控制信号。

三态门的控制信号通常只需要1bit。
op=1表示允许数据通过;
op=0表示不允许数据通过。

三态门 vs 非门

核心区别:“非门”没有控制信号!只有输入和输出

2.2.1_4算数逻辑单元ALU

ALU = Arithmetic and Logic Unit

CPU由控制器、运算器组成

控制器负责解析指令,并根据指令功能发出相应的控制信号(将在计组第五章详细学习)
运算器负责对数据进行处理,如:加减乘除等。

ALU是一种组合逻辑电路,实现了加/减/乘/除、与/或/非等功能。因此ALu是运算器的核心。

由于加减乘除等运算都要基于“加法”来实现,因此加法器是ALU的核心。



考试重点:
如果ALU支持k种功能,则控制信号位数m ≥[log2kl

ALU的运算数、运算结果位数与计算机的机器字长相同

ZF/OF/SF/CF标志位,用于表示本次运算结果的特征(ZF表示运算结果是否为零、OF表示有符号数运算结果是否溢出、SF表示有符号数运算结果的正负性、CF表示无符号数运算结果是否溢出)
这些标志信息通常会被送入PSW程序状态字寄存器
注:有的计算机系统把PSW寄存器称为“标志寄存器FR( Flag Register)”

Cin是进位输入信号、Cout是进位输出信号(类似于带标志位的加法器)

2.2.2定点数的移位运算

移位:通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权。
可用移位运算实现乘法、除法

原码的算数移位――符号位保持不变,仅对数值位进行移位。
右移:高位补0,低位舍弃。若舍弃的位=0,则相当于÷2;若舍弃的位≠0,则会丢失精度
左移:低位补o,高位舍弃。若舍弃的位=O,则相当于×2;若舍弃的位+0,则会出现严重误差









2.2.3_1定点数的加减运算







2.2.3_2无符号数的加减运算


带符号数(补码)的加法∶从最低位开始,按位相加(符号位参与运算),并往更高位进位

带符号数(补码)的减法︰
①“被减数”不变,“减数”全部位按位取反、末位+1,减法变加法
②从最低位开始,按位相加,并往更高位进位

无符号整数的加法∶从最低位开始,按位相加,并往更高位进位

计算机硬件如何做无符号整数的减法:
①“被减数”不变,“减数”全部位按位取反、末位+1,减法变加法
②从最低位开始,按位相加,并往更高位进位

无符号数加法/减法的溢出判断

手算判断溢出的方法:n bit无符号整数表示范围0~2^n-1,超出此范围则溢出

计算机判断溢出的方法:
无符号数加法的溢出判断:最高位产生的进位=1时,发生溢出,否则未溢出。
无符号数减法的溢出判断:减法变加法,最高位产生的进位=0时,发生溢出,否则未溢出。


2.2.3_3补码加减运算电路

n bit加法器

例:
A=1000,B=0111,Cin=0  则F=1111,Cout=0
A=1000,B=0111,Cin=1  则F=0000,Cout=1

例:4bit补码,X=3,Y=4。X补=0011,Y补=0100
X+Y= 0111B =7D
X-Y= 0011+(1011+1)= 1111B =-1D 

n bit补码X+Y,按位相加即可
n bit补码X-Y:将减数Y全部按位取反,末位+1,得到[-Y]补,减法变加法

也可用于计算无符号数加减运算

例:无符号数X=8,Y=7
用4bit表示,X=1000B,Y=0111B
X+Y=1111B =15D
X-Y= 1000+ (1000+1)= 10001=1D
运算结果只保留低四位,最高位进位丢弃

无符号整数的加法/减法也可用该电路实现
n bit无符号数X+Y,按位相加即可
n bit无符号数X-Y:将减数Y全部按位取反,末位+1,减法变加法

带标志位的加法器

OF(overflow Flag)溢出标志,用于判断带符号数加减运算是否溢出。OF=1溢出;OF=0未溢出
SF(Sign Flag)符号标志,用于判断带符号数加减运算结果的正负性。SF=1结果为负;SF=0结果为正
ZF(Zero Flag)零标志,用于判断加减运算结果是否为0。ZF=1表示结果为0;ZF=0表示结果不为0
CF(Carry Flag)进位/借位标志,用于判断无符号数加减运算是否溢出。CF=1溢出;CF=0未溢出

2.2.4_1原码的乘法运算






2.2.4_2补码的乘法运算



2.3 浮点数的表示与运算

2.3.1_1浮点数的表示

从科学计数法理解浮点数

浮点数的表示



浮点尾数的规格化
规格化浮点数:规定尾数的最高数值位必须是一个有效值

左规:当浮点数运算的结果为非规格化时要进行规格化处理将尾数算数左移一位,阶码减1。

右规:当浮点数运算的结果尾数出现溢出(双符号位为01或10)时,将尾数算数右移一位,阶码加1。


2.3.1_2_IEEE754

在IEEE754标准中,指数用移码表示。

移码: 补码的基础上将符号位取反。注意:移码只能用于表示整数。







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/749872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【移动应用开发期末复习】第五/六章例题

系列文章 第一章——Android平台概述 第一章例题 第二章——Android开发环境 第二章例题 第三章 第三章例题 第四章 第五/六章 系列文章RadioGroup 是一个Android特有的布局容器,用于包含多个RadioButton组件。当用户选择其中一个RadioButton时,RadioGroup会自动取消其他Rad…

po文件并转换成mo文件

po文件转换成mo文件 简介 .po和.mo文件是WordPress中语言相关的两种文件。po 是Portable Object(可移植对象)的缩写&#xff0c;存放待翻译的字符串信息&#xff0c;可直接用文本编辑器打开编辑&#xff1b;mo 是Machine Object的缩写&#xff0c;二进制文件&#xff0c;程序…

OverTheWire Bandit 靶场通关解析(上)

介绍 OverTheWire Bandit 是一个针对初学者设计的网络安全挑战平台&#xff0c;旨在帮助用户掌握基本的命令行操作和网络安全技能。Bandit 游戏包含一系列的关卡&#xff0c;每个关卡都需要解决特定的任务来获取进入下一关的凭证。通过逐步挑战更复杂的问题&#xff0c;用户可…

word图题表题公式按照章节编号(不用题注)

预期效果&#xff1a; 其中3表示第三章&#xff0c;4表示第3章里的第4个图。标题、公式编号也是类似的。 为了达到这种按照章节编号的效果&#xff0c;原本可以用插入题注里的“包含章节编号” 但实际情况是&#xff0c;这不仅需要一级标题的序号是用“开始->多级列表”自动…

积分的可视化

积分的可视化 flyfish 考虑平方根函数 f ( x ) x f(x) \sqrt{x} f(x)x ​&#xff0c;其中 x ∈ [ 0 , 1 ] x \in [0, 1] x∈[0,1] 。在区间 [ 0 , 1 ] [0, 1] [0,1] 上&#xff0c;函数 f f f 下方的面积是指函数 y f ( x ) y f(x) yf(x) 的图像与 x x x 轴之间的部…

一个例子理解傅里叶变换的计算过程

假设我们有一个简单的信号&#xff0c;由两个不同频率的正弦波组成&#xff0c;我们希望通过傅里叶变换来分析其频谱。 示例信号 假设我们有一个信号 &#xff1a; 这个信号由两个频率成分组成&#xff1a;一个50 Hz的正弦波和一个120 Hz的正弦波&#xff0c;后者的振幅是前者…

【C++】——AVL树(详细解读)

目录 一 AVL树的概念 二 AVL树节点的定义 三 AVL树的插入 1.先和搜索二叉树一样&#xff0c;去找插入的结点 2.插入的时候&#xff0c;需要更新平衡因子 3.确定平衡因子的改变&#xff0c;判断AVL树的改变 三 AVL树的旋转 左单旋 右单旋 右左双旋 左右双旋 四 …

学校机器该maven环境

在学校机器上 安装maven配置idea中的maven 后&#xff0c;发现无法运行&#xff0c; 推测是学校电脑上idea版本和我们下的maven 可能不太匹配。 学校的电脑上idea有集成的maven&#xff0c;但默认配置是访问国外的服务器 解决办法&#xff1a; 下载分享给各位同学的压缩包m…

【工具分享】ToolsFx

文章目录 ToolsFx介绍如何安装如何运行运行截图 ToolsFx介绍 基于kotlintornadoFx的跨平台密码学工具箱&#xff0c;包含编解码、编码转换、加解密、哈希、MAC、签名、大数运算、压缩、二维码功能、CTF等实用功能&#xff0c;支持插件。 如何安装 GitHub&#xff1a;https:/…

GPT-5对普通人有何影响

这篇文章对ChatGPT的使用方法和提问技巧进行了讨论&#xff0c;重点强调了背景信息和具体提问的重要性。文章清晰地传达了如何提高ChatGPT回答的质量&#xff0c;以及个人在使用ChatGPT时的体会和建议。然而&#xff0c;文章在逻辑组织和表达方面还有一些可以改进的地方&#x…

C# 异步编程详解(Task,async/await)

文章目录 1.什么是异步2.Task 产生背景3.Thread(线程) 和 Task(异步)的区别3.1 几个名词3.2 Thread 与 Task 的区别 4.Task API4.1 创建和启动任务4.2 Task 等待、延续和组合4.3 task.Result4.4 Task.Delay() 和 Thread.Sleep() 区别 5.CancellationToken 和 CancellationToken…

Linux-笔记 使用SCP命令传输文件报错 :IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

前言 使用scp命令向开发板传输文件发生报错&#xff0c;报错见下图; 解决 rm -rf /home/<用户名>/.ssh/known_hosts 此方法同样适用于使用ssh命令连接开发板报错的情况。 参考 https://blog.csdn.net/westsource/article/details/6636096

VBA学习(17):使用条件格式制作Excel聚光灯

今天给大家分享的表格小技巧是制作聚光灯。 先说一下啥是聚光灯。所谓聚光灯&#xff0c;可以简单理解为对工作表的行列填充颜色&#xff0c;突出显示被选中的单元格&#xff0c;仿佛该单元格被聚光灯照亮似的。聚光灯有助于肉眼识别所选中的单元格或区域&#xff0c;提高数据…

Zookeeper部署

Zookeeper部署 下载安装包Linux解压安装包修改配置文件编辑zoo.cf配置 启动服务停止服务常用zookeeper指令查看namespace列表创建namespace删除namespace 注意&#xff1a;该文章为简单部署操作&#xff0c;没有复杂的配置内容&#xff0c;用的是3.7.2版本。 下载安装包 进入z…

实践案例:使用Jetpack Navigation创建一个新闻应用

在这个实践案例中&#xff0c;我们将使用Jetpack Navigation创建一个简单的新闻应用。这个应用将包含以下功能&#xff1a; 新闻列表页面&#xff1a;显示一组新闻文章。新闻详情页面&#xff1a;显示选定新闻文章的详细信息。用户资料页面&#xff1a;显示用户的资料信息。 …

内网部署Prometheus-server结合grafana

目录 1.提取依赖包 2.所有节点安装chrony服务 2.1集群角色规划 2.2 所有节点安装chrony服务 2.3添加hosts文件解析(服务端) 2.4修改时间服务器 ​编辑 2.5重启chrony服务&#xff0c;使得配置生效 2.6修改客户端配置&#xff08;注意是客户端其他节点&#xff09; 2.…

【Knowledge Graph Context-Enhanced Diversified Recommendation(MSDM2024)】

Knowledge Graph Context-Enhanced Diversified Recommendation 摘要 推荐系统&#xff08;RecSys&#xff09;领域已被广泛研究&#xff0c;以通过利用用户的历史交互来提高准确性。 尽管如此&#xff0c;这种对准确性的持续追求常常导致多样性的减少&#xff0c;最终导致众所…

Golang | Leetcode Golang题解之第187题重复的DNA序列

题目&#xff1a; 题解&#xff1a; const L 10 var bin map[byte]int{A: 0, C: 1, G: 2, T: 3}func findRepeatedDnaSequences(s string) (ans []string) {n : len(s)if n < L {return}x : 0for _, ch : range s[:L-1] {x x<<2 | bin[byte(ch)]}cnt : map[int]in…

ollama,springAi实现自然语言处理

ollama安装使用&#xff1a; https://ollama.com/ 下载速度比较慢的可以直接使用以下版本0.1.41 https://pan.baidu.com/s/1hCCkYvFjWqxvPyYA2-YElA?pwdotap 直接管理员身份双击安装&#xff0c;安装成功后会在任务栏里出现这个小图标&#xff1a; 打开cmd&#xff0c;输入…

第1章 基础知识

第1章 基础知识 1.1 机器语言 机器语言就是机器指令的集合&#xff0c;机器指令展开来讲就是一台机器可以正确执行的命令 1.2 汇编语言的产生 汇编语言的主题是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上&#xff0c;汇编指令是机器指令便于记忆的书写格式。…