定点数运算
1.定点数补码的加法
1.定义:
两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数补码之和。两个数不管正负,均用补码表示,符号位应当做数值参加运算,符号位相加所产生的进位要丢掉,结果为补码。
2.举例:
X=0.1011 Y=-0.0101,求 X+Y=?
1
解:
[X]补=0.1011,[Y]补=1.1011
[X]补+[Y]补 = 0.1011+1.1011 = 0.0110 = [X+Y]补
所以 X+Y = 0.0110
2.定点数的补码减法
1.定义:
对于减法,(-Y)的补码称为[Y]补的机器负数,由[Y]补求[-Y]补的过程称为将[Y]补“变补”或对[Y]补求补,由[Y]补求[-Y]补的方法是,不管Y的真值为正或为负,都是将[Y]补的各位连同符号位在内全变反后,最低位加1。
2.说明:
将“某数的补码表示”与“变补”这两个概念区分开来。一个负数由原码表示转换成补码表示时,符号位是不变的,仅对数值位各位变反,末位加“1”。而变补则不论这个数的真值是正是负,一律连同符号位一起变反(所有的二进制位一起变反),末位加“1”。
3.举例
X=-0.1011,Y=-0.0110, 求X-Y=?
解:
[X]补=1.0101,[Y]补=1.1010,[-Y]补=0.0110
[X]补+[-Y]补 = 1.1011 = [X-Y]补
所以 X-Y = 1.0101 = -0.0101
3.原码一位乘法
1.定义
原码一位乘法是从手算演变而来的。即用两个操作数的绝对值相乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负)。
定点原码一位乘法(Unsigned Binary Multiplication)
设被乘数 [ X ] 原 = X f X 1 X 2 . . . X n − 1 X n [X]_原=X_fX_1X_2...X_{n-1}X_n [X]原=XfX1X2...Xn−1Xn
乘数 [ Y ] 原 = Y f Y 1 Y 2 . . . Y n − 1 Y n [Y]_原=Y_fY_1Y_2...Y_{n-1}Y_n [Y]原=YfY1Y2...Yn−1Yn
乘积 [ Z ] 原 = Z f Z 1 Z 2