二进制数值数据的运算方法

二进制数值数据的运算方法补码加法与减法的运算规则加减法运算是计算机中最基本的运算 通常选用补码实现 实现的算法是 X Y 补 X 补 Y 补 MOD 2 2 6 X Y 补 X 补 Y 补 MOD 2 2 7 例如 X 0 1010

大家好,欢迎来到IT知识分享网。

补码加法与减法的运算规则

加减法运算是计算机中最基本的运算,通常选用补码实现,实现的算法是:

[X+Y]补= [X]补+ [Y]补 MOD 2 (2.6)

[X-Y]补= [X]补+ [-Y]补 MOD 2 (2.7)

例如, X =+0.1010, Y = -0.0101,则:

[X]补= 01010, [Y]补= 11011,[-Y]补= 00101 [X]补+ [Y]补 MOD 2= 01010+11011 = ,按2取模后的结果为00101,其真值为 +0.0101,符号位与数值位均正确。

[X]补+ [-Y]补 MOD 2= 01010+00101 = 01111 ,按2取模后的结果为01111,其真值为 +0.1111,符号位与数值位均正确。

在执行补码加减运算时,仅在其运算结果不超出机器能表示的数值范围时,运算结果才是正确的,否则就是“溢出”,得到的结果是错误的。执行补码加减法运算一定要检查溢出,检查是否溢出有3种思路。

(1)检查参与运算的数据和结果的符号是否正确。正数加正数结果为负、或者负数加负数结果为正,都是溢出。

(2)为了方便判别溢出,某些机器采用模4补码(即使用双符号位),其定义为:


二进制数值数据的运算方法

例如,X=+0.1011,[X]补=001011, X=-0.1011,[X]补=,每个补码都使用两个符号位,而且两个符号位总是同值。在执行加减法运算时,若结果的两个符号位相同,为00或11表示结果正确;当符号位为01或10时,表示数值溢出。

(3)数值位产生向符号位的进位,而符号位不产生向更高位的进位,或数值位不产生向符号位的进位,而符号位却产生向更高位的进位也是溢出。这很容易用数值位的进位输出与符号位的进位输出的“异或”操作来判断。

源码一位乘法的运算算法

原码一位乘法是将符号位与数值位分开进行运算,乘积的符号是两个数符号的异或值,数值是两个数绝对值(即原码表示的数值位)的乘积。

例: X=0.1101, Y=0.1011,计算 X × Y

手工计算时,是根据乘数的每一位求部分积,各部分积依次左移一位,最后一次总加求和的办法得到乘积结果,再用负乘负、正乘正为正,负乘正、正乘负为负的方案来处理符号。到了计算

(1)将部分积的一次总加改为分步累加;
  (2)将部分积左移改为部分积右移;
  (3)使部分积连同乘数一起右移,以便保存双倍位数的乘积。
  原码一位乘法的算法是:

(1)用乘数寄存器的最低位选择求部分积的数据来源:被乘数或0值;相加求得部分积并使其右移一位,乘数也同时右移一位,此时高位部分积的最低位移入乘数寄存器的高位。
  (2)用一个特定的寄存器控制相乘次数(决定于数据位的位数)。
  (3)用乘数与被乘数符号位的异或值作为乘积的符号。

二进制数值数据的运算方法

二进制数值数据的运算方法

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/160985.html

(0)
上一篇 2024-12-06 07:00
下一篇 2024-12-06 07:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信