数字逻辑与计算机组成原理:第二章 数据的表示与运算

合集下载

计算机组成原理(第二章3)

计算机组成原理(第二章3)



浮点运算流水线 80x87 80486、Pentium


谢 谢!


第五步:舍入处理 在对阶、向右规格化时,尾数要向右移位, 这样被右移的尾数的低位部分会丢掉,造 成一定误差,必须进行舍入处理。 “0舍1入”法:“4舍5入”法 “恒置1”法:让尾数的最后一位=1

就近舍入 朝0舍入 朝+∞舍入 朝-∞舍入 阶码上溢: +∞、 -∞ 阶码下溢: 0 尾数上溢: 尾数的绝对值>=2,尾数右移1位 尾数下溢: 尾数右移时,尾数的最低有效位从尾 数域右端移出,要进行舍入处理

74182芯片:DIP16
图2.12
Cn+x=G0+P0Cn Cn+y=G1+P1Cn+x=G1+G0P1+P0P1Cn Cn+z=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2C

n

Cn+4=G3+P3Cn+z =G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3Cn

2、逻辑表达式

表2.4

Cn+i+1=XiYi+YiCn+i+Cn+iXi =Yi+YiCn+i+Cn+iXi =Yi(1+Cn+i)+Cn+iXi =Yi+XiCn+i
Cn+1=Y0+X0Cn Cn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0Y1X2+X0X1X2C

数字逻辑与计算机组成原理:第二章 数据的表示与运算

数字逻辑与计算机组成原理:第二章  数据的表示与运算
数字逻辑与计算机组成原理
第二章 数据的表示与运算
第一节 数的表示
一、无符号数和有符号数
1、无符号数:
没有符号的数,寄存器中的每一位都可用 来存放数据
机器字长为n位,无符号数的表示范围 为0~2n-1
反映无符号数的表示范围
8位 16 位
0 ~ 255 0 ~ 65535
有两种常用的无符号表示法: ◆ 非负数码:表示0或一个正数
(1) 定义
整数
0,x
2n > x ≥ 0
[x]反 = ( 2n+1 – 1) + x 0 ≥ x > 2n(mod 2n+1 1)
x 为真值
n 为整数的位数
如 x = +1101
x = 1101
[x]反 = 0,1101
[x]反 = (24+1 1) 1101 = 11111 1101
用 逗号 将符号位
= 1,0010
和数值部分隔开
小数 x
[x]反 = ( 2 – 2-n) + x
1>x≥ 0 0 ≥ x > 1(mod 2 2-n)
x 为真值 n 为小数的位数
如 x = + 0.1101
x = 0.1010
[x]反 = 0.1101
[x]反 = (2 2-4) 0.1010
= 1.1111 0.1010
有符号小数: +0.1011,在机器中表示为
-0.1011,在机器中表示为
第一节 数的表示
一、无符号数和有符号数 2、有符号数
有符号整数: +1101,机器中表示为
-1101, 机器中表示为
第一节 数的表示
一、无符号数和有符号数

王道 计组 第二章 数据的表示和运算_思维导图模板免费分享

王道 计组 第二章 数据的表示和运算_思维导图模板免费分享
被移去的最高数值位为1,则在尾数的末位加1,这样做可能会使尾数又溢出,此 时需再做一次右规
尾数右移时,不论丢掉的最高数值位是1还是0,都使右移的尾数末位横置1,这 种方法同样有使尾数变大和变小的两种可能
阶码上溢
抛出异常(中断)
溢出判断
阶码下溢
按机器0处理
采用双符号位,可拯救尾数溢出
其余内容
强制类型转换
表示无符号数的加减法是否发生了进位或借位。当CF=1时,说明无符号数加减运 算发生了进位或借位,也即发生了溢出
CF(进位/借位标志)
硬件的计算方法:CF=最高位产生的进位⊕sub
sub=1表示减法 sub=0表示加法
仅对无符号数加减法有意义
注意:CF位对有符号数的加减法无意义
通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权
左移n次,上商n+1次,最后一次上商余数不左移 若余数为负,可直接商0,并让余数左移1位再加上|除数|,得到下一个新余数 若余数位正,则商1,让余数左移1位再减去|除数|,得到下一个新余数
手算模拟
除法运算
原码除法:加减交替法(不恢复余数法)
余数的正负性与商相同
最后一步时若余数为负,需商0,并+[|y|]补
一位全加器的设计
本位和 本位向高位的进位
串行加法器
一位全加器+进位触发器,只能一位一位地加
串行进位的并行加法器
多个全加器简单串联,可多位同时加 计算速度取决于进位产生和传递的速度
回忆:各种门电路的图形,全加器的图形和输入输出信号
串行进位的并行加法器
把n个全加器串接起来,就可进行两个n位数的相加。
加法器、ALU的改进
数制与编码
运算方法和运算电路

(完整版)计算机组成原理知识点总结

(完整版)计算机组成原理知识点总结

第2章数据的表示和运算主要内容:(一)数据信息的表示1.数据的表示2.真值和机器数(二)定点数的表示和运算1.定点数的表示:无符号数的表示;有符号数的表示。

2.定点数的运算:定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。

(三)浮点数的表示和运算1.浮点数的表示:浮点数的表示范围;IEEE754标准2.浮点数的加/减运算(四)算术逻辑单元ALU1.串行加法器和并行加法器2.算术逻辑单元ALU的功能和机构2.3 浮点数的表示和运算2.3.1 浮点数的表示(1)浮点数的表示范围•浮点数是指小数点位置可浮动的数据,通常以下式表示:N=M·RE其中,N为浮点数,M为尾数,E为阶码,R称为“阶的基数(底)”,而且R为一常数,一般为2、8或16。

在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来。

浮点数的机内表示浮点数真值:N=M ×2E浮点数的一般机器格式:数符阶符阶码值 . 尾数值1位1位n位m位•Ms是尾数的符号位,设置在最高位上。

•E为阶码,有n+1位,一般为整数,其中有一位符号位EJ,设置在E的最高位上,用来表示正阶或负阶。

•M为尾数,有m位,为一个定点小数。

Ms=0,表示正号,Ms=1,表示负。

•为了保证数据精度,尾数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值大于或等于0.5。

对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求。

浮点数的机内表示阶码通常为定点整数,补码或移码表示。

其位数决定数值范围。

阶符表示数的大小。

尾数通常为定点小数,原码或补码表示。

其位数决定数的精度。

数符表示数的正负。

浮点数的规格化字长固定的情况下提高表示精度的措施:•增加尾数位数(但数值范围减小)•采用浮点规格化形式尾数规格化:1/2≤M <1 最高有效位绝对值为1浮点数规格化方法:调整阶码使尾数满足下列关系:•尾数为原码表示时,无论正负应满足1/2 ≤M <1即:小数点后的第一位数一定要为1。

计算机组成原理第二章

计算机组成原理第二章
是28-1-1=127。所以,指数真值e的表示范围是-127-+128
【例题】P22-23 例6、7、8、9
字符和字符串的表示方法
字符的表示:
用7位二进制码表示27=128个字符,其中95个图形字 符,33个控制字符
字符串的表示:
连续的一串字符即为字符串,在主存中占用连续的多 个字节。如对于语句IF A>B THEN X=A,则其存储格式可以 为:
0.1001
右移1位(z3) 0.0100
111 0.1
+1•x 0.1101
1.0001
右移1位(z4) 0.1000
1111 0
即,[x•y]原=1.10001111,所以,x•y=-0.10001111。
原码并行乘法(不带符号阵列乘法)
与“原码串行乘法运算”相比,原码并行乘法更接近“手算”,更
第二章
运算方法和运算器
数据表示 定点运算 定点运算器 浮点运算教学要求 Nhomakorabea重点和难点
数据的表示和格式 定点加减、乘除运算 定点运算器的组成 浮点运算及浮点运算流水线
实践
运算器组成实验
主要内容
数据与文字的表示方法 定点加减运算 定点乘法运算 定点除法运算 定点运算器的组成 浮点运算方法和浮点运算器 运算器实例
a0 b0 位 积
优点:简单易懂 缺点:加法运算复杂
数的机器码表示
补码表示
若定点整数的补码形式为xnxn-1……x2x0(xn为符号位),则
x
2n>x ≥ 0
定点整数:[x]补=
2n+1+x=2n+1-|x|
(mod 2n ) 0 ≥ x>-2n

计算机组成原理逻辑运算

计算机组成原理逻辑运算

(7)
§1.2 基本逻辑关系
逻辑:指事物的前因和后果所遵循的规律 逻辑状态:逻辑“真”为“1”,逻辑“假”为 “0” 基本逻辑关系:与 ( and ) 或 (or ) 非 ( not ) 与逻辑:决定事件发生的各条件中,所有条件都 具备,事件才会发生(成立) 规定: A E B F 开关合为逻辑“1” 开关断为逻辑“0”
=1
提出A 反变量吸收
(38)
利 用 逻 辑 代 数 的 基 本 公 式
例2:F
AB A B BC B C
(AB A B ) (BC B C) AB A B(C C)
五、反演定理
德 • 摩根 (De • Morgan)定理:
AB A B
A B AB
可以用列真值表的方法证明:
A 0 0 1 1 B 0 1 0 1 AB 0 0 0 1
AB
A
1 1 0 0
B
AB
1 1 1 0
1 0 1 0
1 1 1 0
(24)
反演定理内容:将函数式 F 中所有的
A 0 0 0 0 1 1 1 1
B C 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1
F 0 0 0 0 0 1 1 1
(28)
1.4.2 逻辑函数式
逻辑代数式:把逻辑函数的输入、输出关 系写成与、或、非等逻辑运算的组合 式。也称为逻辑函数式,通常采用 “与或”的形式。 例:
F ABC ABC ABC ABC ABC
利用卡诺图化简
卡诺图适用于输入变量为3、4个的逻辑代数式的 化简;化简过程比公式法简单直观。
(37)
利用逻辑代数的基本公式

计算机组成原理第二章运算方法和运算器[一](共88张PPT)

计算机组成原理第二章运算方法和运算器[一](共88张PPT)
十进制(二-十进制 BCD码)
字符型
逻辑型
2.1.2 数值型数据的表示方法
数值型数据包括无符号数和有符号数两类.
★无符号数:没有符号的数; ★有符号数:符号“+”或“-”在有效数字的前面. 注意:在相同机器字长的情况(qíngkuàng)下,无符号数与 有符号数所对应的数值范围不同. 一、数的机器码表示
最大正整数表示:0,111 111 111 111 111 最大正整数=(215-1)10=(+32767)10
(2)定点原码小数表示:
最大正数值=(1-2-15)10=(+0.111…11)2 15个1 最小负数值=-(1-2-15)10=(-0.111…11)2
精品资料
2.1.2 数值(shùzí)型数据的表示方法
浮点机表示的数的范围:2-11 ×0.0001--211 ×0.1111 即1/128—7.5
精品资料
(2)浮点数与定点数的比较
b)浮点数规格化后,其相对精度远比定点数高. c)浮点数包括阶码和尾数两部分,且结果需要(xūyào) 规格化,故运算较复杂,运算速度比定点数慢. d)在溢出判断的方法上,浮点数是对阶码进行判断, 只有阶码“上溢”时,浮点数溢出; 定点数是当运 算结果超出表示范围即“溢出”.
为扩大数的表示范围而出现了浮点数表示;
计算机应用扩大到商业和事务处理,出现了字符串数据; 堆栈数据表示;
向量(xiàngliàng)数据表示。ຫໍສະໝຸດ 一般介绍数值型数据
(能进行算术运算能得 到明确数值概念的数
字数据)
非数值型数据(以数
字数据形式进入计算 机的声音、图像、文 字等信息)
精品资料
二进制(定点、浮点)
(4)用小数表示-1:原码与反码的小数表示中没有(méi yǒu)-1;补码表示的小数-1为1.0000000

计算机组成原理章节义2章节数据表示运算和运算器部

计算机组成原理章节义2章节数据表示运算和运算器部
海明校验码:
2.1.3 检错纠错码(续)
循环冗余码
原理:在k个数据位之外拼接r个校验位,关键是如何从k位信息位简单地得到r位校验位编码。以及如何判断k+r位码字是否正确;
方法:由信息表达式及生成表达式生成模2余数表达式,并拼接在信息表达式之后;
特点:能发现并纠正一位、多位出错,用于串行通信。
2.1.3 检错纠错码(续)
计算机组成原理讲义 第2章 数据表示、运算和运算器部件
诀窍 详细内容请参阅王诚主编 “计算机组成原理”
围绕定点运算器的功能、组成、设计和实现来介绍。掌握各种数据在计算机内的表示、存储方式、完成运算所用的算法和实现这些算法所用的逻辑电路。
01
本章从数值化信息编码讲起,引出二进制编码,数制转换,插入部分检错纠错码知识。
2.3 二进制数值数据的编码与运算算法
原码、反码、补码的定义 √
补码加、减运算规则 √
原码一位乘法的实现算法 √
定点补码一位乘法的实现算法
原码一位除法的实现算法 √
定点补码一位除法的实现算法
加速乘除法运算的有关算法介绍
数据的正负符号用一位二进制0和1两个状态表示。
通常称表示一个数值数据的机内编码机器数,而把它所代表的实际值称为机器数的真值。
01
二进制编码的优点: 容易实现; 运算简单; 对应逻辑值。
01
2.1.1 数字化信息编码的概念
2.1.2 二进制编码和码制转换
⒈数制与进位记数法 ⑴基r数制:用r个基本符号通过排列起来的符号串表示数值,称为基r数制,称r为该数制的基。 ⑵有权基r数制:如果每一位的单位值都赋以固定的值Wi,则称Wi为该位的权,此时的数制为有权的基r数制。 ⑶r进位数制(r进制):如果基r数制符合“逢r进位”的规则,则每位的权为ri,称为r进制。 ⒉二进制编码与二进制数据 ⑴二进制编码方法; ⑵二进制数值数据的计算(十进制展开)。

计算机组成原理课件第二章数据的表示2.2.3

计算机组成原理课件第二章数据的表示2.2.3
– 左移:高位移出,末位补0。移出的位不同于符号位,则溢出。 – 右移:高位补符号位,低位移出。
2补码移位运算
2补码移位运算
3补码取负运算
• 设X0是符号位,X是真值,因为[X]补=2nX0+X,所以 • 对[X]补连同符号位按位取反加1,即可得[-X]补。
4补码填充运算
•பைடு நூலகம்计算机内部,有时需要将短数扩展为一个长数,此时需要 进行填充处理。
反加1。
(2)已知补码求真值
• [例2-29]已知[X]补=1011010,求真值X。 • 解:根据机器数可知n=7; • 最高符号位为1,真值为负数。X=-100110B
2补码移位运算
• 在计算机内部,可以通过移位寄存器对数据进行移位。 • 对机器数右移一位,意味着原数值缩小一倍,为原数的
1/2;而左移一位,原数扩大一倍,为原数的2倍。 • 补码移位规则:
2.2.3机器数表示形式的变换
• 真值是数据的实际值,机器数是数据在机器内的表示、运 算形式
• 需要掌握各种机器数表示形式之间、真值和机器数之间的 转换方法。
1机器数转换为真值
• (1)已知原码求真值:
– 将原码机器数的符号位转换为+、-号,数值部分就是真值的二进 制数值。
• [例2-28]8位原码机中数据为11100111,求真值。 • 解:原码数据最高位是符号位:1表示• 后面7位是真值数据位1100111B。所以二进制真值是-
1100111B=-103D
(2)已知补码求真值
• 设X0为补码符号,X为真值,补码表示规则为[X]补=2n X0+X。则真值X=-2n X0+[X]补。
• 若X0是0,则X=+[X]补。 • 若X0是1,X=-2n +[X]补=-(2n -[X]补)=(2n -1-[X]补+1) • 可见,

《计算机组成原理》教程第2章数据的表示

《计算机组成原理》教程第2章数据的表示
最大值 : 2n-1-1 最小值:-(2n-1-1) 表示数的个数: 2n - 1
.
30
原码整数的表示范围
若二进制的位数分别是8、16,其原码表示的最大 值、最小值及表示数的个数为:
注意:最高位为符号位,有效数值位分别为7、15 。
8位: 127,-127,255 16位: 32767 , -32767 , 65535
机器数有四种表示方法即原码、补码、反码和 移码。
.
27
1. 原码表示法
原码表示法用“0”表示正号,用“1”表 示负号,数值位用真值的绝对值表示。
整数的符号位与数值位之间用逗号“,”隔开; 小数的符号位与数值位之间用小数点“.”隔
开。
约定:
在本章中,n表示字长的有效位(数值位), X表示真值。(注意:跟书中有点出入)
基数:进位制的基本特征数,即所用到的数 字符号个数。
例如10进制 :0-9 十个数码表示,基数为10
权:进位制中各位“1”所表示的值为该位 的权。
常见的进位制:2,8,10,16进制。
.
4
十进制(Decimal)
基数:10 符号: 0,1,2,3,4,5,6,7,8,9 计算规律: “逢十进一”或“借一当十”
.
21
十六进制转换成二进制
方法:一位十六进制数用四位二进制数表 示。
例如: (7AC.DE ) 16 =(0111,1010,1100.1101,1110 ) 2 =(11110101100 .1101111 )2
.
22
二进制的优点(见书)
运算规则简单,易于实现 数的状态简单 节省设备,判断方便
.
23
无符号数和有符号数(补充)
.

计算机组成原理第二章 运算方法和运算部件1

计算机组成原理第二章 运算方法和运算部件1
关系。其余为数据位 ,则有如下排列关系:
位号
13
12
11
10
9
8
7
6
5
4
3
2
1
信息
8
7
6
5

4
3
2

1


② 海明码的每一位码 (包括数据位和校验位本身)由多个校验位校验,其
关系是被校验的每一位位号要等于校验它的各校验位的位号之和。
D1(H3)
D2(H5)
P1(H1)
② 移码运算结果的最高符号位为“0”,没溢出。 “01”为正值;“00”为负值。

例: = +101, = +100
+

=

+


=

+ −


=

+


=

+ −



= 00,100
= 01,101 + 11,100 = 01,001
−1 ⋯ 2 1
则此海明码的编码规律:
① 每个校验位 在海明码中被分在位号2−1 的位置,其余各位为数据位 ,并
按从低向高逐位依次排列的关系分配各数据位。
例: = 8, = 5,故海明码的总位数为13,可表示:
13 12 11 ⋯ 3 2 1
放5 在13 位上,它已经是海明码的最高位了,其他4位满足 的位号等于2−1 的
(4)舍入
加位最高位为1,在所得结果的最低位+1。
[X+Y]补=00, 011; 11.00010110

计算机组成原理第二章数据的表示和运算

计算机组成原理第二章数据的表示和运算

计算机组成原理第⼆章数据的表⽰和运算第⼆章数据的表⽰和运算数制与编码进制转换使⽤⼆进制的原因⼆进制与⼋进制、⼗六进制的转换各种进制的书写⽅式⼗进制转换为任意进制整数部分⼗进制转换⼆进制如(75)10752=37……1 K372=18……1 K1182=9……0 K292=4……1 K342=2……0 K422=1……0 K512=0……1 K6K0K1K2K3K4K5K6=1101001⼩数部分⼗进制转换⼆进制如(75.3)10⼩数部分=0.30.3∗2=0.6=0+0.6 K−10.6∗2=1.2=1+0.2 K−20.2∗2=0.4=0+0.4 K−30.4∗2=0.8=0+0.8 K−40.8∗2=1.6=1+0.6 K−5……0.3D=0.01001……B⼩数⽆法准确表述⼗进制转换⼆进制(拼凑法)总结Processing math: 52%BCD码(Binary-Coded Decimal)修正数据(9+9)10(9)10→(1001)2(9+9)2=100110011001+1001−−−−1001010010超出了8421码中的1010−1111+(6)10⇔+(0110)2修正10010+0110−−−−11000相加结果在合法范围(1010~1111)内,不需要修正其他编码总结字符与字符串ASCII码可印刷字符:32~126其余为控制、通信字符⼤写字母:65(0100 0001)~ 90(0101 1010)⼩写字母:97(0110 0001)~ 122(0111 1010)汉字的表⽰和编码输⼊:输⼊编码输出:汉字字形码字符串⼤端模式&⼩端模式总结奇偶校验码校验原理当d=1时,⽆检错能⼒;当d=2时,有检错能⼒;当d≥3时,若设计合理,可能具有检错纠错能⼒(海明码)奇偶校验码例题奇校验:(1)1001101 (0)1010111偶校验:(0)1001101 (1)1010111只能发现数据代码中奇数位的出错情况,但不能纠错总结海明码简单思路求解步骤总结循环冗余校验码基本思想校验步骤(模⼆除)G(x)=x3+x2+1=1∗x3+1∗x2+0∗x1+1∗x0→1101110101−−−−−−−−−−−−−−−−−−−1101 |101001000110111101101−−−−−−−−−−−−−−−−−−−01110000−−−−−−−−−−−−−−−−−−−11101101−−−−−−−−−−−−−−−−−−−01100000−−−−−−−−−−−−−−−−−−−11001101−−−−−−−−−−−−−−−−−−−001→校验位对应的CRC码为101001 001s余数为001、010时并不能确定是哪⼀位出错了此时是信息位过多,降低信息位就可以解决问题K个信息位,R个校验位,若⽣成多项式选择得当,且2R≥K+R+1,则CRC码可纠正1位错总结定点数的表⽰⽆符号数通常只有⽆符号整数,⽽没有⽆符号⼩数1001100B=1∗27+1∗26+0∗25+0∗24+1∗23+1∗22+0∗21+0∗20=156D有符号数的定点表⽰原码⽤尾数表⽰真值部分的绝对值,符号位“0/1”对应“正/负”若机器字长为n+1位,则尾数占n位反码若符号位为0,则反码与原码相同若符号位为1,则数值位全部取反反码是原码转变为补码的⼀个中间状态补码正数的补码=原码负数的补码=反码末位+1(要考虑进位)设机器字长为8位[+0]原=0000 0000[+0]反=0000 0000[+0]补=0000 0000[−0]原=1000 0000[−0]反=1111 1111[−0]补=1 0000 0000由于机器字长为8位,进位丢弃[−0]补=0000 0000逆向将负数补码转回原码的⽅法相同:尾数取反,末尾+1[−19]原=1001 0011[−19]反=1110 1100[−19]补=1110 1101[−19]原=1001 0010+0000 0001=1001 0011移码补码的基础上将符号位取反移码只能⽤于表⽰整数⼏种码表⽰定点整数练习假设机器字长为8位定点整数x=50[+50]原=0011 0010[+50]反=0011 0010[+50]补=0011 0010[+50]移=1011 0010定点整数x=−100[−100]原=1110 0100[−100]反=1001 1011[−100]补=1001 1100[−100]移=0001 1110知识回顾各种码的作⽤⽤加法代替减法表盘为例10+9=1919%12=7相当于求余数模运算的性质可以说在模12的情况下上述数字等价其中-3和9互为补数,⼆者绝对值之和等于模\begin{align} 有符号数&~~~~~~~~~~~~~~~~~~~⽆符号数\\ 14~~~~~~&0000~1110~~~~~~~~14\\ -14~~~+&1000~1110~~~~~~142\\ -----&-----------\\0~~~~~~&1001~1100~~~~~~156\\ &模-a的绝对值=a的补数\\ &0000~1110\\ -&0000~1110\\ -----&-----------\\ &0000~0000\\ &\\ &模2^8-0000~1110\\ &1~0000~0000\\ -&~~~0000~1110\\ -----&-----------\\ &~~~1111~0010\\ -----&-----------\\ &~~~0000~1110\\ +&~~~1111~0010\\ -----&-----------\\ &~1~0000~0000\\ \end{align}\begin{align} &求-66的补码\\ &[-66]_{原}=1100~0010\\ &[-66]_{反}=1011~1101\\ &[-66]_{补}=1011~1110\\ &[+88]_{原}=0101~1000\\ &1101~1000\\ +&0011~1110\\ --&-----------------\\ 1~&0001~0110~~~~~~22D\\ \end{align}移位运算算术移位原码的算术移位\begin{align} &[+20]_{原}=0001~0100\\ &{左移⼀位}=0010~1000=+40D\\ \end{align}反码的算数移位补码的算数移位\begin{align} &[-20]_{原}=1001~0100\\ &[-20]_{反}=1110~1011\\ &[-20]_{补}=1110~1100\\ &左移⼀位=1010~1000\\ &[-20]_{原}=1001~0100\\ &[-20]_{反}=1110~1011\\ &[-20]_{补}=1110~1100\\ &右移⼀位=1111~0110\\ \end{align}逻辑移位(针对⽆符号数)应⽤举例循环移位总结加减运算原码的加减运算补码的加减运算\begin{align} &A=15,B=-24,C=124,求[A+C]_{补}[B-C]_{补}\\ &[A]_{原}=0000~1111\\ &[A]_{反}=0000~1111\\ &[A]_{补}=0000~1111\\ &[B]_{原}=1001~1000\\ &[B]_{反}=1110~0111\\ & [B]_{补}=1110~1000\\ &[C]_{原}=0111~1100\\ &[C]_{反}=0111~1100\\ &[C]_{补}=0111~1100\\ &[A+C]_{补}\\ &0000~1111\\ +&0111~1100\\ ----&------------\\ &1000~1011\\&1111~0100\\ &1111~0101~~~~~~-117D\\ &[B-C]_{补}\\ 1&~0000~0000\\ -&~0111~1100\\ ----&-------------\\ &~1000~0100\\ +&~1110~1000\\ ----&-------------\\ &~0110~1100\\&~0110~1100\\ &~0110~1100~~~~~~+108D\\ \end{align}出现了溢出溢出判断⼀位符号逻辑表达式进位判断双符号位符号扩展整数⼩数总结乘法运算⼿算乘法(⼗进制)⼿算乘法(⼆进制)原码⼀位乘法实现⽅法:先加法再移位,重复n次(0)乘法进⾏前ACC置0(1)第⼀步加法加法移位(2)第⼆步加法加法移位(3)第三步加法加法移位(4)第四步加法加法移位乘法结果修正符号位原码⼀位乘法(⼿算模拟)\begin{align} &⾼位部分积~~~~ ~~~~低位部分积~~~~ ~~~~ ~~~~说明\\ &~~00.0000~~~~ ~~~~ ~~~~ ~~~~ 101\underline{1}|~~~~ ~~~~ 低位=1~~~~ +|x|\\ +|x|&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~|\\ ----&---------------------\\ &~~00.1101\\ 右移&~~00.0110~~~~ ~~~~ ~~~~ ~~~~ 110\underline{1}|1~~~~ ~~~ 低位=1~~~~ +|x|\\ +|x|&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~|\\ ----&---------------------\\ &~~01.0011\\ 右移&~~00.1001~~~~ ~~~~ ~~~~ ~~~~ 111\underline{0}|11~~ ~~~低位=0~~~~ +0 \\ +&~~00.0000\\ ----&---------------------\\&~~00.1001\\ 右移&~~00.0100~~~~ ~~~~ ~~~~ ~~~~ 111\underline{1}|011 ~~~低位=1~~~~ +|x| \\ +|x|&~~00.1101\\ ----&---------------------\\ &~~01.0001\\ 右移&~~00.1000~~~~ ~~~~ ~~~~ ~~~~ 111\underline{1}|1011 ~右移部分积和乘数全部移出 \\ &|x|=00.10001111\\ &x*y=-0.10001111\\ \end{align}补码的⼀位乘法辅助位⼿算模拟\begin{align} &⾼位部分积~~~~ ~~~~低位部分积~~~~ ~~~~ ~~~~说明\\ &~~00.0000~~~~ ~~~~ ~~~~ 0.101\underline{1}|0~~~~ ~~~~ ~~~~起始情况\\ +[-x]_补&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=-1,+[-x]_{补}\\ ----&-----------------------------\\ &~~00.1101\\ 右移&~~00.0110~~~~ ~~~~ ~~~~10.10\underline{1}|10~~~~ ~~~~ ~~~~右移部分积和乘数\\ +0&~~00.0000~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=0,+0\\ ----&-----------------------------\\ &~~00.0110\\ 右移&~~00.0011~~~~ ~~~~ ~~~~ 010.1\underline{0}|110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[x]_补&~~11.0011~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~~~~~ ~~~~ Y_4Y_5=01,Y_5-Y_4=1,+[x]_补\\ ----&-----------------------------\\ &~~11.0110\\ 右移&~~11.1011~~~~ ~~~~ ~~~~ 0010.\underline{1}|0110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[-x]_补&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=-1,+[-x]_补\\ ----&-----------------------------\\ &~~00.1000\\ 右移&~~00.0100~~~~~~~~ ~~~~ \underline{\underline{0001}}\underline{0}.|10110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[x]_补&~~11.0011~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~Y_4Y_5=01,Y_5-Y_4=1,+[x]_补\\ ----&-----------------------------\\ &~~11.0111\\ &[x*y]_补=11.0111~0001\\ &x*y=-0.1000~1111\\ \end{align}除法运算⼿算除法(⼗进制)⼿算除法(⼆进制)恢复余数法原码除法:恢复余数法(0)初始(1)第⼀步上商求余数判断上商是否正确01011上商后得11110,相减结果为负,应上商0修正逻辑左移(2)第⼆步上商求余数判断上商是否正确相减结果为正数,上商正确逻辑左移(3)第三步上商求余数判断上商是否正确上商⽆误逻辑左移(4)第四步上商求余数判断上商是否正确相减结果⼩于0,上商有误修正逻辑左移(5)第五步:最后⼀步除法上商&求余数判断上商是否正确最后⼀步除法,如果上商求余数结果⼩于0.还需要继续恢复余数(6)最后⼀步\begin{align} &余数=ACC*2^{-n}\\ \end{align}原码除法(⼿算)加减交替法默认规定被除数要⼩于除数,否则硬件电路⽆法运⾏,如果被除数⼤于除数,商的结果为⼤于1的数将⽆法表⽰通过第⼀步的商来判断被除数与除数的⼤⼩关系第⼀步商的结果⼀定为负值,如果为正值说明被除数⽐除数⼤,硬件电路会⽴即停⽌运算补码除法加减交替法总结C语⾔中的强制类型转换数据的存储和排列⼤⼩端模式边界对齐浮点数的表⽰浮点数尾数的规格化左规&右规规格化浮点数的特点总结IEEE754 浮点数标准\begin{align} &IEEE754规定偏置值=2^{n-1}\\ \end{align}IEEE 754 标准\begin{align} &(-0.75)_{10}=(-0.11)_2=(-1.1)*2^{-1}\\ &数符=1\\ &尾数部分=.1000~0000……(隐含最⾼位1)\\ &阶码真值=-1\\ &单精度浮点型偏移量=127D\\ &移码=阶码真值+偏移量=-1+111~1111=0111~1110(凑⾜8位)\\ \end{align}总结浮点数的运算浮点数的加减运算\begin{align} &(0)转换格式\\ &5D=101B,\frac{1}{256}=2^{-8},X=-101*2^-8=-0.101*2^{-5}=-0.101*2^{-101}\\ &59D=111011,\frac{1}{1024}=2^{-10},Y=111011*2^{-10}=0.111011*2^{-4}=0.111011*2^{-100}\\ &X: &[阶码]_{原}=-101\\ &[阶码]_{补}=1011\\ &阶码双符号位补码:11011\\ &[尾数]_{原}=-0.101\\ &[尾数]_{补}=1.011\\ &尾数双符号位补码:11.011\\&X=11011,11.011000000\\ &Y: &[阶码]_{原}=-100\\ &[阶码]_{补}=1100\\ &阶码双符号位补码:11100\\ &[尾数]_{原}=0.111011\\ &[尾数]_{补}=0.111011\\ &尾数双符号位补码:00.111011\\ &X=11100,00.111011000\\ &浮点数加减法运算步骤\\ &(1)对阶\\ &⼩阶向⼤阶看齐,尾数每右移⼀位,阶码+1\\ &[1]求阶差:[\Delta E]_补=||E_X|_原+|E_Y|_补|=11011+00100=11111\\ &\Delta=-1\\ &[2]对阶:X:11011,11.011000000\rightarrow 111011,11.1011000000\\ &X=-0.0101*2^{-100}\\ &(2)尾数减法\\ &-Y=11100,11.000101000\\ &11011,11.011000000\\ +&11100,11.000101000\\ ---&----------------------------\\ &10.110001000\\ &X_Y=11100,10.110001000\\ &(3)规格化\\&X_Y=11100,10.110001000\rightarrow11101,011000100\\ &(4)舍⼊ \\ &⽆需舍⼊\\ &(5)判断溢出\\ &常阶码,⽆溢出,结果真值为2^{-3}*(-0.1001111)_2 \end{align}舍⼊强制类型转换总结加法器设计算术逻辑单元ALU机器字长=ALU⼀次可以处理的数据长度基本逻辑运算⽤门电路求偶校验位⼀位全加器串⾏加法器并⾏加法器总结加法器、ALU的改进并⾏加法器的优化组内并⾏&串⾏ALU芯⽚优化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例1:设计算机字长为8位,求下列数的原码
x=+1010B, [x]原=? x= -1010B, [x]原=? x=+0.1001B, [x]原=? x= -0.0101B, [x]原=?
三、数值数据的表示 1、原码表示法
解:根据原码的定义,可得下列数的原码
x=+1010B, [x]原=00001010B x= -1010B, [x]原=10001010B x=+0.1001B, [x]原=0.1001000B x= -0.0101B, [x]原=1.0101000B
机器码分为原码、反码、补码
第一节 数的表示
二、数制及转换
计算机 的信息
控制信息 数据信息
数值信息 字符 非数值 汉字
信息
逻辑数据
所有信息在计算机内均用二进制数表示
第一节 数的表示
二、数制及转换
数制(进位计数制):按进位的 原则进行计数
数制
基数:数制中选用的基本数码的 个数
位权:数码所在位置表示的数 的大小
用 小数点 将符号位 和数值部分隔开
= 1.0101
(2) 举例
例1 已知 [x]反 = 0,1110 求 x
解: 由定义得 x = + 1110
例2 已知 [x]反 = 1,1110 求 x
解: 由定义得
x = [x]反 (24+1 1)
= 1,1110 11111
例 3 求 0 的反码
= 0001
x = +1110 x = 1110
[x]原 = 0 , 1110
用 逗号 将符号位 和数值部分隔开
[x]原 = 24 + 1110 = 1 , 1110
小数
x [x]原 = 1 – x
x 为真值
1>x≥0 0≥x> 1
如 x = + 0.1101
[x]原 = 0 . 1101
用 小数点 将符号 位和数值部分隔开
(1) 定义
整数
0,x
2n > x ≥ 0
[x]反 = ( 2n+1 – 1) + x 0 ≥ x > 2n(mod 2n+1 1)
x 为真值
n 为整数的位数
如 x = +1101
x =
[x]反 = 0,1101
[x]反 = (24+1 1) 1101 = 11111 1101
用 逗号 将符号位
1、原码表示法(带符号的绝对值表示)
字长为n位,最高位为符号位,正数 “0”,负数“1”;数值部分的n-1位用二进 制真值的绝对值来表示
第一节 数的表示
三、数值数据的表示
1、原码表示法(带符号的绝对值表示)
0,x 2n > x ≥ 0 整数 [x]原 = 2n x 0 ≥ x > 2n
x 为真值 n 为整数的位数
…… 1111 1111
0 1 …… 127 128 129 …… 255
0 1 …… 127 -128 -127 …… -1
无符号表示的数值
第一节 数的表示
一、无符号数和有符号数
2、有符号数 有效数字前有一个符号位, 正数用“0”表示,负数用“1”表 示
第一节 数的表示
一、无符号数和有符号数 2、有符号数
x = 0.1101
[x]原 = 1 ( 0.1101) = 1 . 1101
x = + 0.1000000
[x]原 = 0 . 1000000
用 小数点 将符号 位和数值部分隔开
x = 0.1000000 [x]原 = 1 ( 0.1000000) = 1 . 1000000
三、数值数据的表示 1、原码表示法
n位非负数码的数值范围:0 ~2n-1(所有位都为1) ◆ 2的补码(简称补码):既能表示正数又能表示负数
n位数的数值范围: -2n-1 ~ 2n-1-1
8位二进制数的非负数码和补码表示的数值
二进制表示
非负数码
补码
0000 0000 0000 0001
…… 0111 1111 1000 0000 1000 0001
有符号小数: +0.1011,在机器中表示为
-0.1011,在机器中表示为
第一节 数的表示
一、无符号数和有符号数 2、有符号数
有符号整数: +1101,机器中表示为
-1101, 机器中表示为
第一节 数的表示
一、无符号数和有符号数
★带“+”或“-”符号的数称为真值 ★机器编码中把符号“数字化”的数称为机 器数或机器码
要求 数1 数2
实际操作 结果符号
加法 正 正


加法 正 负

可正可负
加法 负 正

可正可负
加法 负 负


能否 只作加法 ? 找到一个与负数等价的正数 来代替这个负数 就可使 减 加
三、数值数据的表示
2、反码表示法
正数的反码和原码相同 负数的反码是对该数的原码除符号位外的 各位按位取反
反码表示法
数字逻辑与计算机组成原理
第二章 数据的表示与运算
第一节 数的表示
一、无符号数和有符号数
1、无符号数:
没有符号的数,寄存器中的每一位都可用 来存放数据
机器字长为n位,无符号数的表示范围 为0~2n-1
反映无符号数的表示范围
8位 16 位
0 ~ 255 0 ~ 65535
有两种常用的无符号表示法: ◆ 非负数码:表示0或一个正数
解: 设 x = + 0.0000
[+0.0000]反= 0.0000
x = 0.0000
[ 0.0000]反= 1.1111
= 1,0010
和数值部分隔开
小数 x
[x]反 = ( 2 – 2-n) + x
1>x≥ 0 0 ≥ x > 1(mod 2 2-n)
x 为真值 n 为小数的位数
如 x = + 0.1101
x = 0.1010
[x]反 = 0.1101
[x]反 = (2 2-4) 0.1010
= 1.1111 0.1010
例 2 求 x = 0 的原码 解: 设 x = +0.0000 [+0.0000]原 = 0.0000
x = 0.0000 [ 0.0000]原 = 1.0000
同理,对于整数
[+ 0]原 = 0,0000
∴ [+ 0]原 ≠ [ 0]原
[ 0]原 = 1,0000
原码的特点: 简单、直观
但是用原码作加法时,会出现如下问题:
第一节 数的表示
二、数制及转换
数制(进位计数制):按进位的 原则进行计数
1、十进制 2、二进制 3、八进制 4、十六进制
第一节 数的表示
二、数制及转换
数制转换:
非十进制十进制 例2-1 十进制非十进制
例2-2(整数)除基取余法 例2-3(小数)整数部分用除法
小数部分用乘法
第一节 数的表示
三、数值数据的表示
相关文档
最新文档