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

合集下载

计算机组成原理王爱英(清华)

计算机组成原理王爱英(清华)

2)十进制转换成二进制方法
一般分为两个步骤:
• 整数部分的转换
– 除2取余法(基数除法) – 减权定位法
• 小数部分的转换
– 乘2取整法(基数乘法)
除基取余法:把给定的除以基数,取余数作为最低位的 系数,然后继续将商部分除以 基数,余数作为次低位 系数,重复操作直至商为 0
例如:用基数除法将(327)10转换成二进制数 2 2 2 2 2 2 2 2 2 2 327 163 81 40 20 10 5 2 1 0 余数 1 1 1 0 0 0 1 0 1 2
例如: (7AC.DE ) 16 =(0111,1010,1100.1101,1110 ) 2 =(11110101100 .1101111 )2
3、 数值符号的表示
带符号数的编码 名词解释:真值和机器数 • 真值:正、负号加某进制数绝对值的形 式称为真值。如二进制真值: • X=+1011 y=-1011 • 机器数:符号数码化的数称为机器数 如 :X=01011 Y=11011
3)十六进制(Hexadecimal)
• 基数:16 • 符号:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F • 计算规律:逢十六进一或借一当十六 • 二进制的多项式表示: • N16=dn-1 ×16n-1 + dn-2 ×16n-2 + • • • • • •d1 ×161 + d0 ×160 + d-1 ×16-1 + d-2 ×16-2 + • • • • • •d-m ×16-m • 其中n为整数位数;m为小数位数。Di表示第i 位的系数,16i称为该位的权.
若二进制原码小数的位数分别是8、16 位,求其该数表示的最大值、最小值及所能 表示数的个数?

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

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

第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。

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

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

2024计算机组成原理大纲

2024计算机组成原理大纲

2024计算机组成原理大纲
9. 控制器和时钟 - 控制器的功能和设计原理 - 时钟的作用和设计方法 - 异常和中断处理
10. 计算机系统的可靠性和安全性 - 计算机系统的可靠性分析和评价 - 计算机系统的安全性和安全保护机制 - 计算机系统的故障诊断和容错技术
2024计算机组成原理大纲
以上是一个典型的计算机组成原理课程大纲的示例,不同学校和教师可பைடு நூலகம்会有所不同。该 大纲涵盖了计算机系统的各个方面,从硬件到软件,从基本概念到高级技术,帮助学生全面 了解和理解计算机系统的组成和工作原理。
2024计算机组成原理大纲
计算机组成原理是计算机科学与技术领域的一门基础课程,主要介绍计算机硬件系统的组 成和工作原理。以下是一个典型的计算机组成原理课程大纲的示例:
1. 引言 - 计算机组成原理的定义和重要性 - 计算机的发展历程和趋势
2. 计算机系统概述 - 计算机的基本组成和功能 - 计算机硬件和软件的关系 - 计算机的性能指标和评价方法
6. 输入输出系统 - 输入输出设备的分类和特点 - 输入输出接口和控制器的设计原理 - 中断和DMA技术
2024计算机组成原理大纲
7. 总线系统 - 总线的基本概念和特点 - 总线的组成和连接方式 - 总线的传输方式和时序控制
8. 计算机性能与指令级并行 - 计算机性能的度量和提升方法 - 指令级并行的概念和技术 - 流水线和超标量技术
2024计算机组成原理大纲
3. 数据表示与处理 - 二进制数系统和数据表示 - 整数和浮点数的表示和运算 - 数据的编码和压缩
4. 存储器层次结构 - 存储器的分类和特点 - 主存储器和辅助存储器的组成和工作原理 - 存储器的层次结构和缓存技术

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

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

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

计算机组成原理习题及答案

计算机组成原理习题及答案
若浮点数x的二进制存储格式为 (41360000)16,求此IEEE754格式32位浮点 数的十进制值。 将十进制数20.59375转换成32位IEEE754格 式浮点数的二进制格式来存储。 已知[x]补=1.x1x2„xn(0≥x>-1),求证 x=-(0.x1x2„xn+0.00„01) 已知[x]补 = x0.x1x2…xn 求证 [1-x]补 = x0.x1x2…xn + 2-n 设x=2010×0.11011011,y=2100×(0.10101100),求x+y。
第二部分:数据的表示和运算
求证:-[y]补 = [-y]补 证明: 因为[x+y]补=[x]补+[y]补 设x=-y, 代入上式,有 [0]补 =[-y]补+[y]补 即[-y]补+[y]补=0 因此 -[y]补=[-y]补

第二部分:数据的表示和运算
设[x]补 = x0.x1x2…xn , [y]补 = y0.y1y2…yn , 证明:[x×y]补 = [x]补×(-y0 + y1×2-1+y2×2-2+……+yn×2-n)。 证明: (1)当被乘数x的符号任意,用补码表示,乘数y为正。设 [x]补=x0. x1x2 …… xn [y]补=0. y1y2 …… yn 因为 [x]补=2n+1 + x ( mod2 ) [y]补=y 所以[x] 补 ×[y] 补 =(2n+1 +x)×y = 2n+1y +x×y= 2(y1y2 …… yn) +x×y 因为 (y1y2 …… yn) 是大于0的正整数,根据模运算的性质有: 2 (y1y2 …… yn) = 2 (mod2) 所以 [x]补×[y]补 = 2 + x×y =[x×y]补(mod2) 即 [x×y]补=[x]补×[y]补 =[x]补×(0. y1y2 …… yn) = [x]补×y (1)

计算机组成原理第2章 数据的表示方法

计算机组成原理第2章 数据的表示方法
–对于n位定点整数X:2n>X>-2n 。 –当n=0时,即为小数。
• 优点:简单,直观,易懂。 • 缺点:做加减法时,需要将符号位和数值部 分分开处理。
• 原码表示进行加减运算的情况。
指令操作 操作数符1 操作数符2 实际操作 + 加法 + + + + + 减法 + + + + + + -
2、二进制定点数的补码表示
– 只照顾机器 (运算方便、节省存储空间 ),不照顾 人(是否便于理解) 。
• 机器数按小数点位置是否固定分为:
– 定点数 – 浮点数(实数)
2.2.1 无符号数
• 无符号数是指没有符号的数,在计算机中 每一位都是数据。
– 如数据的位数为16位时,无符号数的范围为 0~65535共65536个数(即216)。
• 如8421码,用12(CH)表示正号,用13(DH)表示负 号。
有权码
十进 制数
0 1 2
无权码
4311 码 十进 制数
0 1 2
8421 码
2421 码
5211 码
余3码
0011 0100 0101
格雷码 (1)
0000 0001 0011
格雷码 (2)
0000 0100 0110
0000 0000 0001 0001 0010 0010
• 下面以有权码8421码为例,进行一位BCD码 的加法运算。 1、2+7=9 2、6+8=14 3、9+8=17 0010 0110 1001 0111 1000 1000 1001 1110 修正 10001 修正 0110 0110 10100 10111

计算机组成原理袁春风

计算机组成原理袁春风
介绍二进制、十进制、十 六进制等数制的基本概念 及相互转换方法。
计算机中数的表示
讲解计算机中负数的表示 方法,如原码、反码、补 码等。
编码的基本概念
阐述编码的定义、分类及 常用编码方法,如ASCII 码、Unicode编码等。
逻辑代数基础
逻辑变量的基本概念
介绍逻辑变量、逻辑函数的基本概念及表示方 法。
主存储器(Main Memory)
位于计算机主机内部,用于存放正在运行的程序和数据。
辅助存储器(Auxiliary Memo…
位于计算机主机外部,容量大、速度慢,用于长期保存信息。
主存储器
随机存取存储器(RAM)
只读存储器(ROM)
可读可写,断电后信息丢失, 用于存放临时数据和程序。
只读不写,断电后信息不丢失 ,用于存放固定程序和数据。
逻辑代数的基本运算
讲解逻辑与、逻辑或、逻辑非等基本运算的定 义、性质及运算规则。
逻辑函数的化简
阐述逻辑函数的化简方法,如公式法、卡诺图法等,以及化简在数字电路设计 中的应用。
门电路与组合逻辑电路
门电路的基本概念
介绍与门、或门、非门等基本门电路的工作原理及特性。
组合逻辑电路的分析与设计
讲解组合逻辑电路的分析方法,如真值表、逻辑表达式等,以及 组合逻辑电路的设计方法,如编码器、译码器、数据选择器等。
固态驱动器(SSD)
采用闪存作为存储介质,具有速度快、 无噪音、抗震动等优点,但价格较高。
网络存储
通过网络连接远程服务器上的存储设 备,具有容量大、可共享等优点,但 速度和安全性受网络影响。
05
中央处理器
CPU的功能和组成
控制单元(CU) 负责协调计算机各部件工作,包 括取指、分析指令和执行指令。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机组成原理》
——《数据的表示和运算(下)》
2.6 数据校验码
减少和避免元器件故或噪音干扰等出现的差错: • 一方面可以通过硬件本身的可靠性入手,在电路、电源、布线提高抗干扰能力; • 另一方面可以采取相应的数据检错和校正措施,自动发现并纠正错误 常用的数据校验码: • 奇偶校验码 • 海明校验码 • 循环冗余校验码
位置,不具有纠错能力。但该方法所用的开销小,常用于存储器读写检查或按 字节传输过程中的数据校验。
2.6 数据校验码
2.6.2 海明校验
• 海明校验码由Richard Hamming于1950年提出,其主要思想是: 将数据按某种规律分成若干组,对每组进行相应的奇偶检测,以提供多位校验信 息,从而可对错误位置进行定位,并将其纠正。 • 海明校验码实质:一种多重奇偶校验码。
2.6 数据校验码
2.6.1 奇偶校验 假设将数据B=bn-1bn-2…b1b0从源部件传送至终部件。在终部件接收到的数据为 B'=b n-1'b n-2'...b 1'b0'。为了判断数据B在传送中是否发生了错误,可以按照如下 步骤来判断: 1) 在源部件求出奇(偶)校验位P.若采用奇校验方式,则P= bn-1⊕bn-2⊕…b1⊕b0⊕1,
2.6 数据校验码
2.6.2 海明校验 最终比较时按位进行异或操作,即P‘和P”按位异或,根据异或操作的结果,确 定是否发生了差错。这种异或操作所得到的结果被称为故障字。显然,校验位和 故障字的位数是相同的。海明校验过程如下:
2.6 数据校验码
2.6.2 海明校验 1.校验位的位数的确定 假定被校验数据M的位数为n,校验位P为k位,则故障字的位数也为k位。那么k 位的故障字所能表示的状态最多是2k种,每种状态可用来说明一种出错情况。对 于最多只有一位错的情况,其结果可能是无错、或n位数据中某一位出错、或k位 校验码中某一位出错。因此,共有1+n+k种情况,所以,要能对一位错的所有结 果进行正确表示,则n和k必须满足下列关系: 2k >=1+n+k, 即 2k-1 >=n+k
即当B中有奇数个1时P取0,否则,P取1。若采用偶校验方式,则P= bn-1⊕bn2⊕…b1⊕b0,即当B中有偶数个1时P取0,否则,P取1.
如下:若传送的是字符A,其ASCII码为1000001,因为编码中有两个1,即有 偶数个1,所以,奇校验位P=1,也即,前面增加奇校验位后的编码为1100 0001。若采用偶校验方式,则P=0,前面加上偶校验位后的编码为0100 0001.
2.6 数据校验码
2.6.2 海明校验 2.分组方式的确定 数据位和校验位是一起被存储的,通过将它们中的各位按某种方式排列为一个 (n+k)位的码字,将该码字中每一位的出错位置与故障字的数值建立关系,这样 就可通过故障字的值很快确定是该码字中的哪一位发生了错误,从而将其取反来 进行纠正。
Hale Waihona Puke 2.6 数据校验码检错、纠错能力的校验码,常用于外存储器的数据校验。 • 在数据传输中,奇偶校验码是在每个字符信息中增加一位奇偶校验位来进行数
据校验的,但是在网络通信中,传输的数据信息都是二进制比特流,因而没有 必要将数据再分解成一个个字符,故无法采用奇偶校验码,因此,通常采用 CRC码进行校验。 • 循环冗余校验码是通过某种数学运算来建立数据和校验位之间的约定关系。
2.6 数据校验码
2.6.2 海明校验 1.校验位的位数的确定 例如,对于单个位纠错的情况,当数据有8位时,校验位和故障字都应有4位。因 为4位的故障字最多可以表示16(24)种状态,而单个位出错情况最多只有12种可 能(8个数据位和4个校验位中的某二位出错),再加上无错的情况,一共有13种情 况。所以,用16种状态表不13种情况应是足够了。
2.6 数据校验码
2.6.1 奇偶校验
⊕异或运算符:如果a、b两个值不相同,则异或结果为1。如果a、b两个值 相同,异或结果为0 2 ) 在 终 部 件 求 出 奇 ( 偶 ) 校 验 位 P' 。 若 采 用 奇 校 验 方 式 , 则 P' =bn-1' ⊕ bn2'⊕…b1'⊕b0'⊕1。若采用偶校验方式,则P' =bn-1' ⊕bn-2'⊕…b1'⊕b0'
对于上述例子,假定传送的ASCII码100 0001被送到终部件后,变成了100 0011,则得到奇校验位P'=0。若采用偶校验方式,则得到偶校验位P'=1.
2.6 数据校验码
2.6.1 奇偶校验
3)计算最终的校验位P',并根据其值判断有无奇偶错。P与B是一起从源部件传 到终部件的,假定P在终部件接受到的值为P”。则P*=P’⊕P”。若P*=1,则表 示有奇数位错,若 P*=0,则表示正确或有偶数个错。
2.6.2 海明校验 2.分组方式的确定 根据上述基本思想,我们按以下规则来解释各故障字的值: (1)如果故障字各位全部是0,则表示没有发生错误。 (2)如果故障字中有且仅有一位为1,则表示校验位中有一位出错,不需要纠正。 (3)如果故障字中多位为1,则表示有一个数据位出错,其在码字中的出错位置由 故障宇的数值来确定。纠正时只要将出错位取反即可。
海明校验有单纠错码(SEC)和单纠错/双检错码(SEC-DED)。前者只能对单个 位出错进行定位和纠错,因此被称为单纠错码;后者同时具有发现两位错和纠正 一位错的能力,简称“纠一检二” 码。
2.6 数据校验码
2.6.5 循环冗余校验 2.6.3循环冗余校验 • 循环冗余校验码(Cyclic Redundancy Check),简称CRC码,是一种具有较强
对于上述例子,假定P被传送到终部件后没有发生变化,也即,奇校验方式 下 P”=P=1 , 或 者 偶 校 验 方 式 下 P”=P=0 , 那 么 , 奇 校 验 方 式 下 , P*=P’⊕P”=0⊕1=1,偶校验方式下,P*=P’⊕P”=1⊕0=1,
2.6 数据校验码
2.6.1 奇偶校验
• 上述例子中,不管奇校验还是偶检验,最终的P*都为1,说明有奇数位错。 • 在奇偶校验中,只能发现奇数位出错,不能发现偶数位出错,也无法确定出错
相关文档
最新文档