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

第二章 数据的表示与运算
第一节 数的表示
一、无符号数和有符号数
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, 机器中表示为
第一节 数的表示
一、无符号数和有符号数
计算机组成原理-第3章运算方法与运算器

03
浮点数运算方法
浮点加减法运算
对阶操作
使两个浮点数的阶码 相等,即小数点位置 对齐。
尾数相加/减
将对阶后的两个浮点 数尾数按定点数加减 规则进行运算。
规格化
将运算结果规格化为 标准形式,包括左规 和右规两种情况。
舍入处理
对规格化后的结果进 行舍入,以减小误差。
溢出判断
判断运算结果是否溢 出,若溢出则作相应 处理。
浮点乘法运算
尾数相乘
将两个浮点数的尾 数按定点数乘法规 则进行运算。
舍入处理
对规格化后的结果 进行舍入。
阶码相加
将两个浮点数的阶 码相加,得到积的 阶码。
规格化
将乘积规格化为标 准形式。
溢出判断
判断运算结果是否 溢出。
浮点除法运算
溢出判断
判断运算结果是否溢出。
阶码相减
将被除数的阶码减去除数的阶码,得到商 的阶码。
THANKS
感谢观看
运算器基本功能及组成
寄存器组
用于暂存操作数和运算结果。
数据总线
连接各部件,实现数据传输。
控制逻辑
控制运算器的操作。
数据通路与控制器设计
数据流
描述数据在运算器中的流动路径 。
控制信号
控制数据的流动和运算的执行。
数据通路与控制器设计
指令译码
将指令转换为控制信号。
时序控制
确定各操作的时间顺序。
微操作控制
01
02
03
04
05
运算方法与运算 器的基本…
定点数与浮点数 的表示方法
定点数的加减运 算
浮点数的加减运 运算器的组成与
算
设计
介绍了运算方法和运算器 的基本概念和分类,包括 算术运算、逻辑运算、移 位运算等。
计算机组成原理第二章数据的表示和运算

计算机组成原理第⼆章数据的表⽰和运算第⼆章数据的表⽰和运算数制与编码进制转换使⽤⼆进制的原因⼆进制与⼋进制、⼗六进制的转换各种进制的书写⽅式⼗进制转换为任意进制整数部分⼗进制转换⼆进制如(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芯⽚优化。
计算机组成原理 第三课PPT课件

5. 数值数据:有确定的数值,能表示该数的大小,能 在数轴上找到确定的点。
表示一个数值数据有三个要素:
⑴ 进位计数制:数的进位系统。采用某种进位制,系 统便规定了可使用的数字符号定的点个表数示。法:小数点的位
置固定不变。 ⑵符号:(数的编码表示:原码、补码、反码、移码)
⑶小数点:(定点表示、浮点表示) 小数点位置的浮动性决定了数的表示范围。
6. 定点整数:小数点固定在有效数字的最右边,即固 定在最低位数的右面,该数为整数。
定点小数:小数点固定在有效数字的最左边,即固 定在最高位数的后面,该数为一个纯小数。
x7 x6 x5 x4 x3 x2 x1 x0
定点整数
x0 x1 x2 x3 x4 x5 x6 x7
定点小数
2.1.1 数值的机器码表示
无符号数:正数
(计算机加工的对象)
字符串
非数值数据 数字串
原码 补码 反码 移码
术 语:
1. 码 制:计算机表示数的大小和正负的方法。 2. 真 值:正负号加某进制数绝对值的形式。如+3,-5; 即实际值。 3. 机器数:计算机内部编码表示的数,称为机器数(机器 码),即真值在机器中的表示。 4. 机器数的形式:原码,补码,移码,反码。
主要内容:
本章主要介绍数据与文字的表示方法,定点 加/减法运算及加法器,定点乘法运算,定点除 法运算,定点运算器的组成与结构,浮点运算方 法和浮点运算器。
2.1 数据与文字的表示方法
指令
控制信息
计 算
(指挥计算机操作) 控制字
定点整数
机
定点数
内 的 信
有符号数 数值数据
定点小数 浮点数
息
数据信息
计算机组成原理第4章

本章学习要求
• 掌握:定点补码加法和减法运算方法 • 理解:3种溢出检测方法 • 理解:补码移位运算和常见的舍入操作方法 • 了解:串行加法器与并行加法器 • 理解:进位产生和进位传递 • 掌握:定点原码、补码乘法运算方法 • 掌握:定点原码、补码加减交替除法运算方法 • 理解:浮点加减乘除运算 • 理解:逻辑运算 • 了解:运算器的基本结构及浮点协处理器
第4章 数值的机器运算
设操作数信号为4、3、2、1、(最低 位信号为1)。向最低位进位的信号为C0、 Gi、Pi 分别是各位的进位产生函数和进位 传递函数。
(1)完善第4位先行进位信号的逻辑表达 式。 C4=G4+P4G3+……
(2)基于操作数,试述表达式中各项的 实际含义。
第4章 数值的机器运算
[-Y]补=[[Y]补]变补
第4章 数值的机器运算
2.补码减法(续)
“某数的补码表示”与“变补”是两个不 同的概念。一个负数由原码转换成补码时,符 号位是不变的,仅对数值位各位变反,末位加 “1”。而变补则不论这个数的真值是正是负, 一律连同符号位一起变反,末位加“1”。[Y]补 表示的真值如果是正数,则变补后[-Y]补所表示 的真值变为负数,反之亦然。
第4章 数值的机器运算
16位单级先行进位加法器
S1 6~S1 3
S1 2~S9
S8~S5
S4~S1
C16 4位CLA C12 4位CLA C8 4位CLA C4 4位CLA
加法器
加法器
加法器
加法器
C0
A1 6~A1 3
A1 2~A9
B1 6~B1 3
B1 2~B9
A8~A5 B8~B5
计算机组成原理第4章浮点数运算方法ppt课件

jy]移 (mod 2n+1) 则直接可得移码形式。
同理,当作除法运算时,商的阶码可用下式完成: [jx]移+[-jy]补 = [jx - jy]移
11
5. 溢出判断
在浮点规格化中已指出,当尾数之和(差)出现 01.××…×或10.××…×时,并不表示溢出,只有 将此数右规后,再根据阶码来判断浮点运算结果是否 溢出。
若机器数为补码,尾数为规格化形式,并假设阶符取 2位,阶码取7位,数符取2位,尾数取n位,则它们能 表示的补码在数轴上的表示范围如下图。
浮 点 数 加 减 运 算 流 程 图
16
浮点加减法运算
1. 大型计算机和高档微型机中,浮点加减法运算是由 硬件完成的。低档的微型机浮点加减法运算是由软 件完成的,但无论用硬件实现或由软件实现加减法 运算,基本原理是一致的。
2. 浮点加减法运算要经过对阶、尾数求和、规格化、 舍入和溢出判断五步操作。其中尾数运算与定点加
23
2. 尾数运算
(1)浮点乘法尾数运算 (2)浮点除法尾数运算
24
(1)浮点乘法尾数运算
预处理:检测两个尾数中是否有一个为0, 若有一个为0,乘积必为0,不再作其他操 作;如果两尾数均不为0,则可进行乘法运 算。
相乘:两个浮点数的尾数相乘可以采用定 点小数的任何一种乘法运算来完成。
规格化:相乘结果可能要进行左规,左规 时调整阶码后如果发生阶下溢,则作机器 零处理;如果发生阶上溢,则作溢出处理。
(完整版)计算机组成原理知识点总结
第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。
计算机组成原理第4章第三讲PPT课件
3. 循环冗余校验码
• Cyclic Redundancy Check,CRC • 基于模2运算而建立编码规则的校验码,是在 k位信息码之后拼接r位校验码; • 应用CRC码的关键是如何从k位信息位简便地 得到r位校验位(编码),以及如何从k+r位信息码 判断是否出错; • CRC码可以发现并纠正信息存储或传送过程 中连续出现的多位错误 。
D —— 检测错误的位数 最多检错 2位
C —— 纠正错误的位数 最多纠错 1位 汉明码是具有一位纠错能力的编码
第9页/共48页
2 . 汉明码
(1)汉明码的组成
组成汉明码的三要素 汉明码的组成需增添 ?位检测位
2k ≥ n + k + 1
检测位的位置 ?
2i-1 ( i = 1,2,… , k )
阿尔托希望将它们融洽地联系在一起高位字节地址为字地址低位字节地址为字地址设地址线24寻址若字长为16寻址若字长为32字地址字节地址1110字节地址字地址通常计算机系统既可按字寻址也可按字节寻址此时地址编号按字节编号存储器容量16m字节8m字16m字节4m字16m字节evaluationonly
主要内容
第22页/共48页
(2) CRC码的编码方法
• 在纠错编码代数中,把以二进制数字表示的一个数据
系列看成一个多项式。
• 如,可将待编码的k位有效信息位组表达为多项式M(x)
• M(x)=Ck-1Xk-1 +Ck-2Xk-2 + … + CiXi +… + C1X+C0 • 式中Ci为0或1,由对应二进制数确定;如待编码数为
得
M(x) ·x3=1100000=x6+x5
计算机组成原理课后习题答案(一到九章)
作业解答第一章作业解答1.1基本的软件系统包括哪些内容?答:基本的软件系统包括系统软件与应用软件两大类。
系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。
包括:操作系统、语言处理程序、数据库管理系统、分布式软件系统、网络软件系统、各种服务程序等。
1.2计算机硬件系统由哪些基本部件组成?它们的主要功能是什么?1.31)2)3)1.41.5以保证总①可以减少各个部件之间的连线数量,降低成本;②便于系统构建、扩充系统性能、便于产品更新换代。
1.6按其任务分,总线有哪几种类型?它们的主要作用是什么?答:按总线完成的任务,可把总线分为:CPU内部总线、部件内总线、系统总线、外总线。
1.7计算机的主要特点是什么?答:计算机的主要特点有:①能自动连续地工作;②运算速度快;③运算精度高;④具有很强的存储能力和逻辑判断能力;⑤通用性强。
1.8衡量计算机性能有哪些基本的技术指标?以你所熟悉的计算机系统为例,说明它的型号、主频、字长、主存容量、所接的I/O设备的名称及主要规格。
答:衡量计算机性能的基本的技术指标有:①基本字长;②主存容量;③运算速度;④所配置的外部设备及其性能指标;⑤系统软件的配置。
1.9单选题(1)1946年,美国推出了世界上第一台电子数字计算机,名为__A__。
A.ENIACB.UNIVAC-IC.ILLIAC-IVD.EDVAC(2)在计算机系统中,硬件在功能实现上比软件强的是__C__。
A.灵活性强B.实现容易C.速度快D.成本低(3)完整的计算机系统包括两大部分,它们是__C____。
A.运算器与控制器B.主机与外设C.硬件与软件D.硬件与操作系统(4)在下列的描述中,最能准确反映计算机主要功能的是___D___。
A.计算机可以代替人的脑力劳动B.计算机可以存储大量的信息(5(6(71.10(1(2(3(4(5(6答:①应用领域(7)银河I(YH-I)巨型计算机是我国研制的①。
计算机组成原理——数据的表示与运用
计算机组成原理——数据的表⽰与运⽤数值与编码进位记数制及其相互转换⼗进制、⼆进制、⼋进制、⼗六进制真值、机器数(原码、反码、补码)字符与字符串的编码(⼩端和⼤端⽅式存储)数据校验奇偶校验、CRC冗余校验、海明校验定点数的表⽰和运算⽆符号数的表⽰,有符号数的表⽰定点数的运算移位、原码加/减、补码加/减、乘/除、溢出判别浮点数的表⽰和运算浮点:表⽰范围、IEEE754标准、浮点数加/减运算ALU结构串⾏加法器和并⾏加法器、ALU的功能和结构200912.⼀个 C 语⾔程序在⼀台 32 位机器上运⾏。
程序中定义了三个变量 xyz,其中 x 和 z 是 int型,y 为 short 型。
当 x=127,y= -9 时,执⾏赋值语句 z=x+y 后,xyz 的值分别是A.X=0000007FH,y=FFF9H,z=00000076HB.X=0000007FH,y=FFF9H,z=FFFF0076HC.X=0000007FH,y=FFF7H,z=FFFF0076HD.X=0000007FH,y=FFF7H,z=00000076H答案:D考点:整数的补码表⽰和补码加法。
x和z是int型,占四个字节,y是short型占两个字节。
y=-9的⼆进制原码为1000 0000 0000 1001补码=原码取反+1 为1111 1111 1111 0111 = (FFF7)16⽽在进⾏x+y时,int型能够表⽰所有的short类型,所以现将short转为int再相加为11813.浮点数加减运算过程⼀般包括对阶、尾数运算、规格化、舍⼊和判溢出等步骤。
设浮点数的阶码和尾数均采⽤补码表⽰,且位数分别为 5位和 7 位(均含 2 位符号位)。
若有两个数 X=27×29/32,Y=25×5/8,则⽤浮点加法计算 X+Y 的最终结果是A.00111 1100010 B.00111 0100010C.01000 0010001 D.发⽣溢出答案:D考点:浮点数加法运算双符号位法溢出判断根据题意,X可记为00,111;00,11101(分号前为阶码,分号后为尾数),Y可记为00,101;00,10100(20/32)(1)对阶,X、Y阶码相减,即00,111-00,101=00,111+11,0111=00,010,可知X的阶码⽐Y的价码⼤2,根据⼩阶向⼤阶看齐的原则,将Y的阶码加2,尾数右移2位,可得Y为00,111;00,00101;(2)尾数相加,即00,11101+00,00101=01,00010,尾数相加结果符号位为01,故需进⾏右规;(3)规格化,将尾数右移1位,阶码加1,得X+Y为01,000;00,10001,阶码符号位为01,说明发⽣溢出,故选D。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
因为 A–B= A+(–B ),所以有补码减法:
整数 [A – B]补= [A+(–B )]补= [A]补 + [ – B]补 (mod 2n+1) 小数 [A – B]补= [A+(–B )]补= [A]补 + [ – B]补 (mod 2)
从[Y]补求[-Y]补的法则是: 对[Y]补包括符号位“求反且最末位加1”
21
补 码 右 移
2.2.2 定点数的运算
22
① 乘积的符号位 x0 ② 数值部分的运算
y0 = 0
1=1
x*• y* = 0. 1 1 1 0 0 0 0 0 0 1 1 1 则 [x • y]原 = 1. 1 1 1 0 0 0 0 0 0 1 1 1 特点 绝对值的补码运算 用移位的次数判断乘法是否结束 算术移位
每次用乘数的2位判断原部分积是否加和 如何加 被乘数
2.2.2 定点数的运算
19
两位乘数共有4种状态,对应这4种状态可得下表。 乘数yn-1 yn 00 01 10 11 新的部分积 加 “0” 2 加 1 倍的被乘数 加 2 倍的被乘数 加 3 倍的被乘数 2 2 2
2.2.2 定点数的运算
为 y 的绝对值
y0
数值部分为绝对值相乘 x* • y*
2.2.2 定点数的运算
12
原码一位乘递推公式
x*• y* = x*(0.y1y2 … yn) = x*(y12-1+y22-2+ … + yn2-n) = 2-1(y1x*+2-1(y2x*+ … 2-1(ynx* + 0)… )) z0 …… z0 = 0 z1 = 2-1(ynx*+z0) z2 = 2-1(yn-1x*+z1) … zn z1
2.2.2 定点数的运算
24
2) 补码乘法
(1)补码与真值的关系
设 [x]补 = x0.x1x2 … xn 当X≥0时,x0=0,[x]补 = 0.x1x2 … xn=∑xi2-i = x
i=1 n
当x<0时,x0=1,[x]补 = 1.x1x2 … xn=2+ x
得出 x = - x0 +∑xi2-i
20
原码两位乘运算规则
标志位Cj 0
0 0 0 1 1 1 1
乘数判断位yn-1yn 00
01 10 11 00 01 10 11
操作内容 z 2, y* 2, Cj 保持“0” z+x* 2, y* 2, Cj 保持“0”
z+2x* 2, y* 2, Cj 保持“0” z–x* z+x* 2, y* 2, 置“1” Cj 2, y* 2, 置“0” Cj
回顾
4、反码加减法运算
7
(1)反码加法运算 反码加法运算遵循 [X]反+[Y]反=[X+Y]反 规则。符号位参加运算。 符号位相加后,如果有进位,则把该进位的数字加到数的最低位, 即循环进位。 (2)反码减法 两个反码表示的数相减,类似于补码减法,将减数变符号,并 根据变号后的减数取反,按反码加法进行。
16
2.2.2 点数的运算
17
原码一位乘的硬件配置
0 A 加 法 器 n 0 Q 右移 n
移位和加控制
控 制 门
0
X
n
计数器 C
S
GM
A、X、Q 均 n+1 位 移位和加受末位乘数控制
2.2.2 定点数的运算
18
(2)原码两位乘 原码两位乘与原码一位乘一样,符号位的运算和数值部 分是分开进行的,但原码两位乘是用两位乘数的状态来 决定新的部分积如何形成,因此可提高运算速度。 一位乘 两位乘 符号位和数值位部分分开运算
乘积的位数扩大一倍
2.2.2 定点数的运算
9
笔算乘法改进
A • B = A • 0.1011 = 0.1A + 0.00A + 0.001A +0.0001A = 0.1A + 0.00A + 0.001( A +0.1A) = 0.1A + 0.01[0 • A + 0. 1( A +0.1A)] = 0.1{A +0.1[ 0 • A+0.1(A + 0.1A)]} 右移一位 = 2-1{A +2-1[ 0 • A+2-1(A + 2-1(A+0))]} 第一步 被乘数A + 0 第二步 1,得新的部分积 第三步 部分积 + 被乘数 第八步 … 1,得结果
当y>0 时,y0=0 [x. y]补 = [x]补. y 当y<0 时,y0=1 [x.y]补= [ x]补 (0.y1y2 … yn) +[– x]补
补码比较法(Booth 算法)
31
设[x]补 = x0.x1x2 … xn [x ·y]补
[y]补 = y0.y1y2 …yn
–[x]补= +[–x]补
设 被乘数 [x]补 = x0.x1x2 … xn 乘数 [y]补 = y0.y1y2 … yn
均为任意符号,则有补码乘法算式:[x.y]补=[x]补.y
证明: ① 被乘数任意,乘数为正
根据补码定义,有 [x]补=2+x=2 n+1+x (mod 2) 所以, [x]补. [y]补 = 2 n+1 .y +x.y=2(y1y2 … yn)+x.y 由于 (y1y2 … yn)是大于0的正整数,所以, 2(y1y2 … yn)=2 (mod 2) 故 [x]补. [y]补 = 2 +x.y =[x.y]补 即 [x. y]补 =[x]补. [y]补 =[x]补. y [y]补=y
i=1 n
所以 x = 1.x1x2 … xn – 2= -1+ 0.x1x2 … xn= -1+∑xi2-i
i=1
n
2.2.2 定点数的运算
25
(2)补码的右移 正数右移一位,相当于乘1/2。负数用补码表示,右移 一位,是否也相当于乘1/2?
设 [x]补 = x0.x1x2 … xn
因为 x = - x0 +∑ xi2-i
-1 -2 -n
= [x]补( 0.y1 … yn ) – [x]补 ·y0 = [x]补(y1 2 +y22 + … +yn2 ) – [x]补 ·y0 2-1 = 20 – 2-1 2-2 = 2-1 – 2-2
z+2x* 2, y* 2, 置“0” Cj z–x* 2, y* 2, Cj 保持“1” z
–x* +[–x* ]补
2, y* 2, Cj 保持“1”
2 2 补码移
共有操作 +x* +2x* 实际操作 +[x*]补 +[2x*]补
2.2.2 定点数的运算
例:已知 x = 0.111111 y = – 0.111001 求[x· y] 原
2.2.2 定点数的运算
29
运算规律:
乘数[y]补,去掉符号位,操作同 ① 最后 加[–x]补,校正
2.2.2 定点数的运算
30
③ 被乘数、乘数符号任意 设[x]补 = x0.x1x2 … xn [y]补 = y0.y1y2 … yn 综合① ② ,得到补码乘法统一算式 [x ·y]补= [x]补( 0.y1 … yn ) +[– x]补 ·y0
Principles of Computer Composition
计算机组成原理
2
第二部分 数据的表示和运算
2.1 数制与编码 2.2 定点数表示和运算 2.3 浮点数表示和运算 2.4 算术逻辑单元ALU
2.2 定点数表示和运算
2.2.1 定点数的表示 1、无符号数的表示; 2、有符号数的表示。 2.2.2 定点数的运算 1、定点数的位移运算; 2、原码定点数的加/减运算; 3、补码定点数的加/减运算; 4、定点数的乘法运算
2.2.2 定点数的运算
8
7、定点数的乘法运算 分析笔算乘法 A = – 0.1101 B = 0.1011 A×B = – 0.10001111 0.1101 ×0 . 1 0 1 1 1101 1101 0000 1101 0.10001111 乘积的符号心算求得 符号位单独处理 乘数的某一位决定是否加被乘数 ? 4个位积一起相加
2.2.2 定点数的运算
23
原码两位乘和原码一位乘比较
符号位 操作数 移位 移位次数 最多加法次数
原码一位乘 x0 y0 绝对值 逻辑右移 n n
原码两位乘 x0 y0 绝对值的补码 算术右移 n(n为偶数) 2 n +1(n为偶数) 2 最多加 n/2 +1次
n 为奇数时,原码两位乘移 n/2 +1次
2.2.2 定点数的运算
10
改进后的笔算乘法过程
2.2.2 定点数的运算
1)定点原码乘法 (1) 原码一位乘运算规则(以小数为例) 设[x]原 = x0.x1x2 [y]原 = y0.y1y2 … … xn yn
11
[x • y]原 = (x0 y0).(0.x1x2 … xn)(0.y1y2 … yn) = (x0 y0). x*y* 式中 x*= 0.x1x2 … xn y*= 0.y1y2 … yn 乘积的符号位单独处理 x0 为 x 的绝对值
位乘法。