×

补码乘法运算例题

补码乘法运算例题(急求:已知 x=0.1001,y=-0.1011 ,用补码一位乘法计算x×y)

admin admin 发表于2024-06-21 09:14:02 浏览18 评论0

抢沙发发表评论

本篇文章给大家谈谈补码乘法运算例题,以及急求:已知 x=0.1001,y=-0.1011 ,用补码一位乘法计算x×y对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

急求:已知 x=0.1001,y=-0.1011 ,用补码一位乘法计算x×y

x=0.1001,y=-0.1011 ,用补码一位乘法计算,x补=1.1011 y补=1.1101,(x·y)补=1.1011*1.1101。

假设当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12)。

在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。若用一般公式可表示为:a-b=a-b+mod=a+mod-b。

扩展资料:

补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。

补码的引入和当时运算器设计的背景不无关系,既要考虑表示的数的类型(小数、整数、实数和复数)、数值范围和精确度,又要考虑数据存储和处理所需要的硬件代价。

x=0.1001, y=-0.1011,用补码一位乘法计算,

X的补码为0.1010,-X的补码为1.0110,Y的补码为1.1001(低位有4位)。高位低位(乘数补码处理值)说明000000|110010最低位10,高位加-X的补码110110————11011011101101|1001执行右移,最低位01,高位加X的补码001010————00010100001010|1100执行右移,最低位00,高位加0000000————000010000001010|110执行右移,最低位10,高位加-X的补码110110————1101111110111010|11执行右移,乘数补码被右移出去,进行最后一次000000运算,最低位11,高位加0————1110111010|11最终结果为11.10111010,因为补码一位乘结果用的是双符号位,换成单符号位就是1.10111010。我总结了点补码一位乘的方法,给你参考下处理对象:被乘数补码*乘数补码=两描述文档描述文档描述文档描述文档描述文档

补码乘法题目-3

初始值:部分积:R0 = 0000补乘数X:R1 = 补 = 1101, R1最低位用“R1。”表示,乘数Y: 补=1011,辅助位 P = 0 .  R0, R1, P   --------------  0000 1101 0 初始值 +1011 R1。P=10,R0=R0+补 -------------- 1011 1101 0  R0、R1 第1次右移1位得:  1101 1110 1 +0101 R1。P=01,R0=R0+补 -------------- 0010 1110 1    R0、R1 第2次右移1位得:   0001 0111 0 +1011 R1。P=10,R0=R0+补 -------------- 1100 0111 0    R0、R1 第3次右移1位得:   1110 0011 1 R1。P=11, R0无加减操作 1110 0011 1   R0、R1 第4次右移1位得:  1111 0001 1 --------------补 = 1111 0001反 = 1111 0000原 = 1000 1111 X.Y = -000 1111B = -15D

已知x=-0.1101,y=0.1001,用补码运算方法计算X*Y

x=0.1001,y=-0.1011 ,用补码一位乘法计算,x补=1.1011 y补=1.1101,(x·y)补=1.1011*1.1101。

补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:

(1)解决了符号的表示的问题。

(2)可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计。

(3)在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易。

补码的运算

在计算机系统中,数据的表示与存储都是以0或1的形式,而表示这些0或1,我们可以将外部数据通过数字电路进行编码,对于有符号数,在计算机系统中有三种编码,即我们通常所了解的编码、原码、反码、补码。

正数原码 = 0 + 正数绝对值,负数原码 = 1 + 负数绝对值。

例如:

+20的原码:00010100,- 20的原码:10010100。

反码:

正数反码 = 正数原码,负数反码 = 负数原码符号位的1不变,绝对值部分按位取反。

例如:

+20的原码:00010100。

+20的反码:00010100。

- 20的原码:10010100。

- 20的反码:11101011。

用补码一位乘法计算X*Y的补码,写出计算过程,X=0.1010,Y= -0.0111

X的补码为0.1010,-X的补码为1.0110,Y的补码为1.1001(低位有4位)。高位低位(乘数补码处理值)说明000000|110010最低位10,高位加-X的补码110110————11011011101101|1001执行右移,最低位01,高位加X的补码001010————00010100001010|1100执行右移,最低位00,高位加0000000————000010000001010|110执行右移,最低位10,高位加-X的补码110110————1101111110111010|11执行右移,乘数补码被右移出去,进行最后一次000000运算,最低位11,高位加0————1110111010|11最终结果为11.10111010,因为补码一位乘结果用的是双符号位,换成单符号位就是1.10111010。我总结了点补码一位乘的方法,给你参考下处理对象:被乘数补码*乘数补码=两数积的补码。预处理:1、单独算出被乘数的相反数的补码,同时乘数补码往右扩一位补0(乘数补码处理值),积的符号位与其余位必须一同计算。2、两数补码相乘拆分为多个加法运算。3、每次加法运算分为高位和低位两部分处理,高位初始值为0、位数是在带符号被乘数位数基础上向左扩一位(利于右移),低位初始值是乘数补码处理值、位数与乘数数据位位数相同。第一次加:4、第一次加法是由高位和加数相加,加数的值由乘数补码处理值的最低两位确定(若为01,加数为被乘数补码,若为10,加数为被乘数的相反数的补码,若这两位的数值相等,则加数为0;加数左边多余的一位根据其符号位确定补0还是补1,符号位为0则补0,符号位为1则补1)。5、此次加法运算结束后,加法运算所得的高位(部分积)与低位合成一个整体并右移1位得到新的高位和低位(右移时左边补0还是补1由右移前的符号位确定,符号位为0则补0,符号位为1则补1,,另外在右移时乘数补码处理值也连带着右移)。第二次加:6、高位再次进行加法处理,加数的值由新得到的乘数补码处理值的最低两位确定(确定方法同第4点)。7、此次加法运算结束后,加法运算所得的高位(部分积)与低位合成一个整体并右移1位得到新的高位和低位(右移时高位左边补0或1的确定方法同第5点,另外在右移时乘数补码处理值也连带着右移)。循环加法:8、按“第二次加”的方法循环,直至低位将乘数补码处理值的每一位都右移出去后,再进行一次加法运算(此次加法运算结束后不进行右移),此时得到的高位和低位合成一个整体就是最终乘积,这个最终乘积是双符号位。9、所得的最终乘积的小数位数必须是被乘数补码与乘数补码的小数位数之和。关于双符号位:00正,11负,01上溢,10下溢。附注:无论是原码一位乘,还是补码一位乘、补码二位乘,与手工算法都有共通之处,都是根据乘数每一位(或两位)的状态在被乘数的基础上来确定加数(如被乘数、被乘数补码、被乘数相反数补码、0),因为乘数是二进制的,每一位只有0、1两种状态,所以又免去了手算十进制乘法中以乘数每一位去乘被乘数来确定加数的过程,而右移所得的部分积就相当于手算乘法中左移加数。

帮忙做道计算机组成原理的题目已知x=-0.10101

1.补=1.01011补=0.110113.补=0.00110补=负溢1)写出补码一位乘的运算步骤。A寄存器存累加和B寄存器存被乘数,-B寄存器存其负数的补码。双符号位表示C寄存器存乘数,双符号位表示,末尾添0,根据C寄存器最后两位做移位乘法。

关于补码乘法运算例题到此分享完毕,希望能帮助到您。