当前位置:文档之家› 补码加减法运算(计算机组成原理)页

补码加减法运算(计算机组成原理)页

补码加减法运算(计算机组成原理)页
补码加减法运算(计算机组成原理)页

最新程序自动生成10以内加减法口算练习题集合(2500题)

姓名 ______ 时间 ______ 分数 ______ 7-0= 8+0= 9-2= 1+6= 8-1= 9+1= 6-2= 1+8= 8-7= 4+6= 4-2= 1+9= 5-0= 1+2= 7-4= 0+8= 7-5= 6+2= 3-1= 7+0= 7-4= 3+5= 4-0= 5+1= 7-5= 3+4= 9-0= 8+1= 4-3= 5+5= 7-2= 8+0= 5-4= 6+1= 3-2= 5+0= 9-4= 6+1= 5-3= 4+5= 8-1= 8+1= 5-2= 4+6= 8-2= 5+5= 8-2= 1+0= 4-3= 1+3=

姓名 ______ 时间 ______ 分数 ______ 4-1= 3+2= 3-2= 3+3= 9-5= 9+0= 6-3= 5+5= 4-2= 1+5= 9-4= 7+2= 1-0= 5+3= 2-1= 8+1= 9-6= 9+1= 6-0= 5+0= 9-1= 1+7= 9-7= 5+1= 3-2= 3+4= 9-3= 9+1= 7-4= 9+1= 7-3= 6+2= 7-3= 9+0= 3-1= 6+2= 9-3= 6+1= 3-0= 3+1= 9-6= 6+1= 8-7= 1+0= 8-5= 4+4= 9-7= 6+1= 3-2= 8+1=

姓名 ______ 时间 ______ 分数 ______ 8-7= 8+0= 9-7= 4+0= 9-1= 0+5= 8-4= 5+3= 3-0= 1+1= 5-2= 0+2= 3-2= 1+1= 9-1= 4+5= 3-2= 6+0= 5-0= 2+5= 9-2= 0+8= 8-1= 3+4= 7-4= 4+2= 6-1= 3+6= 7-1= 3+4= 9-2= 6+3= 3-0= 8+2= 9-7= 6+0= 8-1= 5+2= 4-2= 1+6= 7-0= 2+3= 1-0= 7+3= 4-2= 8+0= 4-3= 3+3= 9-8= 0+10=

补码加减运算答案

3.1 已知[x]补和[y]补的值,用补.码加减法计算x+y和x-y(写出结果的二进制表示和十进制表示),并指出结果是否溢出以及溢出的类型(建议采用变形补码计算)。 (1) [x]补=0.11011 , [y]补=0.00011 (2) [x]补=0.10111 [y]补=1.00101 (3) [x]补=1.01010 [y]补=1.10001 (4) [x]补=1.10011 [y]补=0.11001 解: (1) [x]补=0.11011 , [y]补=0.00011 [-y]补=1.11101 [X+Y]补=[x]补+[y]补 = 00.11011 + 00.00011 __________________ 00.11110 X+Y= +15/16 =+0.1111B [X-Y]补=[x]补+[-y]补 =00.11011 +11.11101 __________________ 00.11000 X-Y= +12/16 =+3/4=+0.11B 检验 【X= + 27/ 32 Y= +3/32 X+Y = +(27+3)/32 =+30/32=0.11110B X-Y = (27-3)/32=+24/32=+3/4=0.11B 】 (2) [x]补=0.10111 , [y]补=1.00101 [Y]原=1.11011 [-y]补=0.11011 [X+Y]补=[x]补+[y]补 = 00.10111 + 11.00101

__________________ 11.11100 X+Y=-0.001B=-1/8 [X-Y]补=[x]补+[-y]补 = 00.10111 +00.11011 ________________ 01.10010 (上溢) [X-Y]补=1.10010 (上溢) 【修正:X-Y=-0.01110 = -7 / 16+2 = 25 / 16 】 检验 【X= +23/ 32 Y=-27/32 X+Y = (23-27)/32 =-4/32=-1/8 X-Y = (23+27)/32=+50/32 =25/16 (上溢) 】 (3) [x]补=1.01010 , [y]补=1.10001 [-y]补=0.01111 [X+Y]补=[x]补+[y]补 = 11.01010 + 11.10001 __________________ 10.11011 X+Y=0.11011B=+27/32 [ 修正27/32-2=27-64=-37/32 ] [X-Y]补=[x]补+[-y]补 = 11.01010 + 00.01111 ________________ 11.11001 X-Y=-0.00111B=-7/32 检验

补码的绝对值 补码的运算

(3).补码的绝对值(称为真值) 【例4】-65的补码是10111111 若直接将10111111转换成十进制,发现结果并不是-65,而是191。事实上,在计算机内,如果是一个二进制数,其最左边的位是1,则 我们可以判定它为负数,并且是用补码表示。若要得到一个负二进制数的绝对值(称为真值),只要各位(包括符号位)取反,再加1,就得到真值。如:二进制值:10111111(-65的补码)各位取反:01000000 加1:01000001(+65的补码) 编辑本段代数加减运算 1、补码加法 [X+Y]补 = [X]补 + [Y]补【例5】X=+0110011,Y=-0101001,求[X+Y]补[X]补=00110011 [Y]补=11010111 [X+Y]补 = [X]补 + [Y]补 = 00110011+11010111=00001010 注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是100001010,而是00001010。 2、补码减法 [X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补其中[-Y]补称为负补,求负补的方法是:所有位(包括符号位)按位取反;然后整个数加1。【例6】1+(-1) [十进制] 1的原码00000001 转换成补码:00000001 -1的原码10000001 转换成补码:11111111 1+(-1)=0 00000001+11111111=00000000 00000000转换成十进制为0 0=0所以运算正确。 3、补码乘法 设被乘数【X】补=X0.X1X2……Xn-1,乘数【Y】补=Y0.Y1Y2……Yn-1, 【X*Y】补=【X】补×【Y】补,即乘数(被乘数)相乘的补码等于补码的相乘。 编辑本段补码的代数解释 任何一个数都可以表示为-a=2^(n-1)-2^(n-1)-a; 这个假设a为正数,那么-a就是负数。而根据二进制转十进制数的方法,我们可以把a表示为: a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2) 这里k0,k1,k2,k(n-2)是1或者0,而 且这里设a的二进制位数为n位,即其模为2^(n-1),而2^(n-1)其二项展开 是:1+2^0+2^1+2^2+……+2^(n-2),而式子:-a=2^(n-1)-2^(n-1)-a中,2^(n-1)-a代入 a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2)和2^(n-1)=1+2^0+2^1+2^2+……+2^(n-2) 两式,2^(n-1)-a=(1-k(n-2))*2^(n-2)+(1-k(n-3))*2^(n-3)+…… +(1-k2)*2^2+(1-k1)*2^1+(1-k0)*2^0+1,而这步转化正是取反再加1的规则的代数原理所在。因为这里k0,k1,k2,k3……不是0就是1,所以1-k0,1-k1,1-k2的运算就是二进制下的 取反,而为什么要加1,追溯起来就是2^(n-1)的二项展开式最后还有一项1的缘故。而 -a=2^(n-1)-2^(n-1)-a中,还有-2^(n-1)这项未解释,这项就是补码里首位的1,首位1在

补码运算加减乘除原理

首先我们来看为什么要使用补码运算法: 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了. 于是人们开始探索将符号位参与运算, 并且只保留加法的方法. 首先来看原码: 计算十进制的表达式: 1-1=0 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2 如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数. 为了解决原码做减法的问题, 出现了反码: 计算十进制的表达式: 1-1=0 1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0 发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特 殊的数值上.虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0. 于是补码的出现, 解决了0的符号以及两个编码的问题: 1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原 这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128: 接下来我们来看补码运算原理: 在计算机里,如果我们要计算5-3的值,我们既可以用5减去3,也可以用5 加上13。这是为什么呢? 这就像我们的钟表,它从1点走到12点之后,又回到了1点。我们的计算机 也是,从0走到15之后,再往下走就又回到了0,就像我们转了一个圈一样。 我们从5这个位置往回退3个格,就完成了5-3这个计算。我们也可以从5这 个位置往前走,一直走到15,这时我们走了10个格,然后我们继续往前走, 走到0,然后到1,然后就走到了2。这样,我们往前走了13个格之后,也到 了2这个位置。 所以说,在我们这个计算机中,减3和加13是一样的。而3+13=16,我们说在 模16的系统下,3和13是互补的。 这样,我们计算5-3就可以换成5+13。3的二进制表示为0011,5的二进制表 示为0101。这样,0101-0011就可以表示为0101+(-0011)。 我们在计算机中都是把负数用其补码表示,-0011的补码就是10000-0011(即 16-3,也就是13)。10000-0011=1+1111-0011=1+(1111-0011)=1+1100=1101。

计算机组成原理实验报告-八位补码加减法器的设计与实现

计算机科学与技术学院 计算机组成原理 实验报告书 实验名称八位补码加/减法器的设计与实现班级 学号 姓名 指导教师 日期 成绩

实验1八位补码加/减法器的设计与实现 一、实验目的 1.掌握算术逻辑运算单元(ALU)的工作原理。 2.熟悉简单运算器的数据传送通路。 3.掌握8位补码加/减法运算器的设计方法。 4.掌握运算器电路的仿真测试方法 二、实验任务 1.设计一个8位补码加/减法运算器 (1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。 (2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试。 (3)测试通过后,封装成一个芯片。 2.设计8位运算器通路电路 参考下图,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。 3.利用仿真波形,测试数据通路的正确性。 设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。 (1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7~BUS0上的值与IN0~IN7端输入的数据是否一致。 (2)给DR1存入55H,检查数据是否存入,请说明检查方法。 (3)给DR2存入AAH,检查数据是否存入,请说明检查方法。 (4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。 (5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。 (6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。 三、实验要求 (1)做好实验预习,掌握运算器的数据传送通路和ALU的功能特性。 (2)实验完毕,写出实验报告,内容如下: ①实验目的。 ②实验电路图。 ③按实验任务3的要求,填写下表,以记录各控制信号的值及时序关系。 表中的序号表示各控制信号之间的时序关系。要求一个控制任务填一张表,并 可用文字对有关内容进行说明。

定点补码加减运算及溢出判断练习一

定点补码加减运算及溢出判断练习一 姓名分数 课堂练 一、选择题 1.若采用双符号位,则发生正溢的特征是:双符号位为()A.00 B.01 C.10 D.11 2.下列公式不正确的是() A.[X + Y]补 = [X]补 + [Y]补 B. [X - Y]补 = [X]补 + [-Y]补 C. [X - Y]补 = [X]补 - [Y]补 D. [X - Y]补 = [-(Y-X)]补 3.计算机内进行加/减法运算时常采用。() A.ASCII码 B.原码 C.反码 D.补码 4.补码运算的特点是符号位。()A.与数值位分别进行运算 B.与数值位一起参与运算 C.要舍去D.表示溢出 5.x=+0.1011B, y=+0.0110B,则用补码运算[x-y]补=______。 ( ) A. 0.0101B B. 0.0001B C. 1.1011B D. 1.1111B 6. 在大量数据传送中常用且有效的检验法是_____ ( )A.奇偶校验法 B.海明码校验 C.判别校验 D.CRC校验 二、判断题(正确的打“√”,错误的打“×”) 1.计算机内部的加减法都用补码运算是因为用户喜欢用。 ( ) 2. [-Y]补的求法是除符号位外,其余位取反加1 。 ( ) 3.两个正数相减一定不可能发生溢出。 ( ) 4.补码加减法中,符号位产生的进位要丢掉。 ( ) 5.两个正数相加有可能不发生溢出。 ( ) 6.【X】补=模+X公式适用于任何范围内的负数的求补。 ( ) 三、填空题 1.在计算机中,凡是带符号的数一律用码表示。 2.已知[X]补=01110111B,[Y]补=01100010B,则[X-Y]补= 。 3.利用双符号位判断溢出时 C S+1 代表 C S 代表 4.X=0.100101 , Y=0.001101 ,则 X+Y= 。 5.X=0.1101 , Y=-0.0101 ,则 X+Y= 。 6.两正数相加,结果为负表明发生(正/负)溢出 7.在计算机中,无符号数经常用于表示。 8.B3H ∧ 7FH = H 。 9.若计算机结果下溢时一般作处理。

用补码表示整数及加减运算

用补码表示整数及加减运算 本次我组主要是想通过运用补码来表示整数,我主要的工作是将十进制整数转化成补码及其加减运算和溢出的讨论。 一、原理 人类习惯使用十进制数进行数值计算,而计算机则采用二进制,所以为了让计算机帮助人类计算,首先要把十进制数转换为二进制数。本次说明以最简单的8 位定点整数为例,分析了计算机存储和计算数值的方法。 整数有正负之分,但计算机却只认得―0‖―1‖,不知道符号―+‖和―-‖,所以有必要用―0‖―1‖来表示―+‖―-‖。人们规定用―0‖表示―+‖,用―1‖表示―-‖。 这样,就可以表示出计算机能识别的整数了,把符号数值化后的二进制数称为机器数,相对应的,符号没有数值化(即仍用―+‖―-‖号表示)的二进制数称为真值。计算机只能处理机器数。 (一)原码 机器数有三种编码形式,分别称为:原码,补码和反码。其实篇头已经介绍了机器码的一种形式——原码,它的特点是有效数值部分照抄真值,符号―+‖―-‖分别用―0‖―1‖表示。 例如: +6D,它的真值是+000 0110(注意:8位二进制数最高位是符号位,所以其真值只有7 位),对应的原码就是0000 0110。 -6D,它的真值是-000 0110,对应的原码就是1000 0110。 原码表示法比较直观,它的数值部分就是该数的绝对值,而且与真值的转换十分方便。 (二)补码 机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反, 。 并在未位加1而得到的。设有一数X,则X的补码表示记作[X] 补 那补码是如何编码的,对于十进制+6。它真值是+000 0110,原码是0000 0110。用数学表达式来表示真值和原码的关系,这就是: 设机器字长为N位,真值为X,则:

补码运算规则

补码(two's complement) 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值位统一处理;同时,加法和减法也可以统一处理。此外,补码与原码的的相互转换,其运算过程是相同的,不需要额外的硬件电路。 补码的特性 1、一个整数(或原码)与其补数(或补码)相加,和为模。 2、对一个整数的补码再求补码,等于该整数自身。 3、补码的正零与负零表示方法相同。 机器数:计算机中参与运算的数被称为机器数,有以下特点, 1、计算机中参与运算的数均为二进制数,这是因为,运算电路是由只能识别“0”、“1”的数字电路组成。 2、机器数有带符号数和无符号数两种。 3、带符号的机器数有源码、反码和补码三种表示方式;无符号数没有源码、反码、补码的区别。 4、CPU的运算电路是按补码的运算规律设计,因此,进行运算的带符号数均用补码表示。 无符号数的运算 1、与手工二进制运算的方法相同(指运算电路)。 2、可以用十六进制数的运算代替二进制数的运算,计算时不容易出错,而且快捷。 源码表示法(带符号数) 1、正数。最高位是符号位,用“0”表示正号,即15~0位的第15位为0,7~0位的第7位为0。 2、负数。最高位是符号位,用“1”表示负号,即15~0位的第15位为1,7~0位的第7位为1。 3、求源码的方法:先将真值转换成二进制数,再写成固定的8位或16位,最高位用“0”或“1”表示数的正号和负号。计算机就是用这种方法表示。 真值就是带符号的十进制数(补码的绝对值),如+20、-20、+120、-120。在计算机内,如果是一个二进制数,其最左边的位是1,则我们可以判定它为负数,并且是用补码表示。若要得到一个负二进制补码的真值(原来的数值),只要对其求补码,就可得到真值。 【例5】-65的补码是10111111 若直接将10111111转换成十进制,发现结果并不是-65,而是191。 各位取反(除符号位):11000000,再+1:11000001(-65)

相关主题
文本预览
相关文档 最新文档