
定点乘法运算2教学文稿.ppt
10页定点乘法运算主讲教师:李 瑞 红 单 位: 软件学院三、乘法运算1. 分析笔算乘法A = 0.1101 B = 0.1011AB = 0.100011110 . 1 1 0 10 . 1 0 1 11 1 0 11 1 0 10 0 0 01 1 0 10 . 1 0 0 0 1 1 1 1符号位单独处理乘数的某一位决定是否加被乘数 4个位积一起相加乘积的位数扩大一倍乘积的符号心算求得 ?6.36.312. 笔算乘法改进A B = A 0.1011= 0.1A + 0.00A + 0.001A +0.0001A= 0.1A + 0.00A + 0.001( A +0.1A)= 0.1A + 0.010 A + 0. 1( A +0.1A)= 0.1A +0.1 0 A+0.1(A + 0.1A)= 2-1A +2-1 0 A+2-1(A + 2-1(A+0)第一步 被乘数A + 0第二步 1,得新的部分积第八步 1,得结果第三步 部分积 + 被乘数右移一位6.36.324小结 被乘数只与部分积的高位相加 由乘数的末位决定被乘数是否与原部分积相加, 然后 1 形成新的部分积,同时 乘数 1(末 位移丢),空出高位存放部分积的低位。
6.36.3 乘法 运算 加和移位n = 4,加 4 次,移 4 次54. 原码乘法(1) 原码一位乘运算规则以小数为例设x原 = x0.x1x2 xn y原 = y0.y1y2 yn= (x0 y0). x*y*x y原 = (x0 y0).(0.x1x2 xn)(0.y1y2 yn)式中 x*= 0.x1x2 xn 为 x 的绝对值 y*= 0.y1y2 yn 为 y 的绝对值 乘积的符号位单独处理 x0 y0数值部分为绝对值相乘 x* y*6.36.36(2) 原码一位乘递推公式x* y* = x*(0.y1y2 yn)= x*(y12-1+y22-2+ + yn2-n)= 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0) )z1znz0 = 0z1 = 2-1(ynx*+z0)z2 = 2-1(yn-1x*+z1)zn = 2-1(y1x*+zn-1)z06.36.37例6.21已知 x = 0.1110 y = 0.1101 求x y原解:6.36.3数值部分的运算0 . 0 0 0 00 . 1 1 1 00 . 1 1 1 00 . 0 0 0 00 . 1 1 1 00 . 1 1 1 0部分积 初态 z0 = 0 部 分 积 乘 数 说 明0 . 0 1 1 101 . 0 0 0 11 01 . 0 1 1 01 1 00 . 1 0 1 10 1 1 01,得 z4逻辑右移逻辑右移1 1 0 1=0 . 0 1 1 11,得 z10 1 1 0=0 . 0 0 1 11,得 z21 0 1 1=0 . 1 0 0 01,得 z31 1 0 1=8 数值部分按绝对值相乘 乘积的符号位 x0 y0 = 1 0 = 1x* y* = 0. 1 0 1 1 0 1 1 0则 x y原 = 1. 1 0 1 1 0 1 1 0特点绝对值运算逻辑移位例6.21 结果用移位的次数判断乘法是否结束6.36.39。
