补码加法与减法的运算规则
加减法运算是计算机中最基本的运算,通常选用补码实现,实现的算法是:
[X+Y]补= [X]补+ [Y]补 MOD 2 (2.6)
二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二加法 有四种情况:0+0=00+1=11+0=11+1=00进位为1【例1103】求
[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 = 100101 ,按2取模后的结果为00101,其真值为 +0.0101,符号位与数值位均正确。
二进制计算法就是只用1和零来表示数字,我们平常说的是十进制,它是由0到9十个数字来表示的,具体的表示方法是,比如二进制0就是十进制的0,01就是十进制的1 11就是十进制的3, 100就是十进制的4。二进制是计算技术。
[X]补+ [-Y]补 MOD 2= 01010+00101 = 01111 ,按2取模后的结果为01111,其真值为 +0.1111,符号位与数值位均正确。
二进制计算的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制数(binaries)是逢2进位的进位制,0、1是基本算符;计算机运算基础采用二进制。电脑的基础是二进制。在早期设计的常用的进制主要是十进制。
在执行补码加减运算时,仅在其运算结果不超出机器能表示的数值范围时,运算结果才是正确的,二进制怎么算过程,否则就是“溢出”,得到的结果是错误的。执行补码加减法运算一定要检查溢出,检查是否溢出有3种思路。
(1)检查参与运算的数据和结果的符号是否正确。正数加正数结果为负、或者负数加负数结果为正,都是溢出。
(2)为了方便判别溢出,某些机器采用模4补码(即使用双符号位),其定义为:
例如,X=+0.1011,[X]补=001011, X=-0.1011,[X]补=110101,每个补码都使用两个符号位,而且两个符号位总是同值。在执行加减法运算时,若结果的两个符号位相同,为00或11表示结果正确;当符号位为01或10时,表示数值溢出。
比如23这个数字 ,我们就让它除以2得11余1 ,然后11再除以2得5余1 ,然后5再除以2得2余1 ,2再除以2得1余0 ,所以23化成2进制就是10111 ,就是把余数从下往上写下来,第一位是1 。
(3)数值位产生向符号位的进位,而符号位不产生向更高位的进位,或数值位不产生向符号位的进位,而符号位却产生向更高位的进位也是溢出。这很容易用数值位的进位输出与符号位的进位输出的“异或”操作来判断。
源码一位乘法的运算算法
二进制的计算数据是用0和1两个数码来表示的数。基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。计算机中的二进制是一个非常微小的开关,用“开”来表示1,“关”来表示0。二进制的计算分为五种:
原码一位乘法是将符号位与数值位分开进行运算,乘积的符号是两个数符号的异或值,数值是两个数绝对值(即原码表示的数值位)的乘积。
例: X=0.1101,Y=0.1011,计算 X × Y
(1)用乘数寄存器的最低位选择求部分积的数据来源:被乘数或0值;相加求得部分积并使其右移一位,乘数也同时右移一位,此时高位部分积的最低位移入乘数寄存器的高位。(2)用一个特定的寄存器控制相乘次数(决定于数据位的位数)。(3)用乘数与被乘数符号位的异或值作为乘积的符号。