计算机组成原理课后题6.20
(21页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
19.90 积分
20. 用原码一位乘、两位乘和补码一位乘(Booth算法)、两位乘计算x·y。 (1)x= 0.110 111,y= -0.101 110; (2)x= -0.010 111,y= -0.010 101; (3)x= 19, y= 35; (4)x= 0.110 11, y= -0.111 01。 解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值。 (1)[x]原=x=0.110111,[y]原=1.101110 x*=0.110111, y*=0.101110 x0=0,y0=1,z0=x0 ? y0=0 ? 1=1 x*×y*=0.100 111 100 010 [x×y]原=1.100 111 100 010 x·y= -0. 100 111 100 010,原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 1 0 1 1 1 0 —— +0 ?1 0 . 0 0 0 0 0 0 0 . 1 0 1 1 1 —— +x* + 0 . 1 1 0 1 1 1 0 . 1 1 0 1 1 1 ?1 0 . 0 1 1 0 1 1 1 0 . 1 0 1 1 —— +x* + 0 . 1 1 0 1 1 1 1 . 0 1 0 0 1 0 ?1 0 . 1 0 1 0 0 1 0 1 0 . 1 0 1 —— +x* + 0 . 1 1 0 1 1 1 1 . 1 0 0 0 0 0 ?1 0 . 1 1 0 0 0 0 0 0 1 0 . 1 0 —— +0 ?1 0 . 0 1 1 0 0 0 0 0 0 1 0 . 1 —— x* + 0 . 1 1 0 1 1 1 1 . 0 0 1 1 1 1 ?1 0 . 1 0 0 1 1 1 1 0 0 0 1 0,,,,,,,,,,,,,,,,,,2x*=01.101110,[-x*]补=[-x]补=1.001001 原码两位乘: 部分积 乘数 Cj 0 0 0 . 0 0 0 0 0 0 0 0 . 1 0 1 1 1 0 0 + 0 0 1 . 1 0 1 1 1 0 +2x* 0 0 1 . 1 0 1 1 1 0 0 ?2 0 0 0 . 0 1 1 0 1 1 1 0 0 0 .1 0 1 1 + 1 1 1 . 0 0 1 0 0 1 +[-x*]补 1 1 1 . 1 0 0 1 0 0 1 ?2 1 1 1 . 1 1 1 0 0 1 0 0 1 0 0 0 .1 0 + 1 1 1 . 0 0 1 0 0 1 +[-x*]补 1 1 1 . 0 0 0 0 1 0 1 ?2 1 1 1 . 1 1 0 0 0 0 1 0 0 0 1 0 0 0 . + 0 0 0 . 1 1 0 1 1 1 +x* 0 0 0 . 1 0 0 1 1 1 1 0 0 0 1 0 0 结果同一位乘,x·y= -0. 100 111 100 010,,,,,,,,,,,,[x]补=x=0.110111 [y]补=1.010010 [-x]补=1.001001 [2x]补=01.101110 [-2x]补=10.010010 [x×y]补=1.011 000 011 110 0 x·y= -0.100 111 100 010 0 补码一位乘、两位乘运算过程如下:,补码一位乘:部分积 乘数[y]补 yn+1 0 0 . 0 0 0 0 0 0 1 . 0 1 0 0 1 0 0 —— +0 ?1 0 0 . 0 0 0 0 0 0 0 1 . 0 1 0 0 1 0 + 1 1 . 0 0 1 0 0 1 +[-x]补 1 1 . 0 0 1 0 0 1 ?1 1 1 . 1 0 0 1 0 0 1 0 1 . 0 1 0 0 1 + 0 0 . 1 1 0 1 1 1 +[x]补 0 0 . 0 1 1 0 1 1 ?1 0 0 . 0 0 1 1 0 1 1 1 0 1 . 0 1 0 0 —— +0 ?1 0 0 . 0 0 0 1 1 0 1 1 1 0 1 . 0 1 0 + 1 1 . 0 0 1 0 0 1 +[-x]补 1 1 . 0 0 1 1 1 1 ?1 1 1 . 1 0 0 1 1 1 1 1 1 1 0 1 . 0 1 + 0 0 . 1 1 0 1 1 1 +[x]补 0 0 . 0 1 1 1 1 0 ?1 0 0 . 0 0 1 1 1 1 0 1 1 1 1 0 1 . 0 + 1 1 . 0 0 1 0 0 1 +[-x]补 1 1 . 0 1 1 0 0 0 0 1 1 1 1 0 0 —— 清0,,,,,,,,,,,,,,,,,,,补码两位乘: 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 0 1 0 0 1 0 0 + 1 1 0 . 0 1 0 0 1 0 +[-2x]补 1 1 0 . 0 1 0 0 1 0 ?2 1 1 1 . 1 0 0 1 0 0 1 0 1 1 .0 1 0 0 1 + 0 0 0 . 1 1 0 1 1 1 +[x]补 0 0 0 . 0 1 1 0 1 1 ?2 0 0 0 . 0 0 0 1 1 0 1 1 1 0 1 1 .0 1 0 + 0 0 0 . 1 1 0 1 1 1 +[x]补 0 0 0 . 1 1 1 1 0 1 ?2 0 0 0 . 0 0 1 1 1 1 0 1 1 1 1 0 1 1 . 0 + 1 1 1 . 0 0 1 0 0 1 +[-x]补 1 1 1 . 0 1 1 0 0 0 0 1 1 1 1 0 0 0 . 结果同补码一位乘, x·y= -0. 100 111 100 010 00,,,,,,,,,,,,(2) x= -0.010111, y= -0.010101 [x]原=1.010111, [y]原=1.010101 x*=0. 010111 , y*=0. 010101 [-x*]补=1.101001,2x*=0.101110 [-2x*]补=1.010010 x0=1,y0=1,z0=x0 ? y0=1 ? 1=0 [x]补=1.101001, [y]补=1.101011 [-x]补=0.010111,[2x]补=1.010010 [-2x]补=0.101110 x*×y*=0.000 111 100 011 [x×y]原=0.000 111 100 011 [x×y]补=0.000 111 100 011 0 x·y= 0. 000 111 100 011 运算过程如下:,原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 0 1 0 1 0 1 —— +x* + 0 . 0 1 0 1 1 1 0 . 0 1 0 1 1 1 ?1 0 . 0 0 1 0 1 1 1 . 0 1 0 1 0 —— +0 ?1 0 . 0 0 0 1 0 1 1 1 . 0 1 0 1 —— +x* + 0 . 0 1 0 1 1 1 0 . 0 1 1 1 0 0 ?1 0 . 0 0 1 1 1 0 0 1 1 . 0 1 0 —— +0 ?1 0 . 0 0 0 1 1 1 0 0 1 1 . 0 1 —— +x* + 0 . 0 1 0 1 1 1 0 . 0 1 1 1 1 0 ?1 0 . 0 0 1 1 1 1 0 0 0 1 1 . 0 —— +0 ?1 0 . 0 0 0 1 1 1 1 0 0 0 1 1,,,,,,,,,,,,,,,,,原码两位乘: 部分积 乘数y* Cj 0 0 0 . 0 0 0 0 0 0 0 0 . 0 1 0 1 0 1 0 + 0 0 0 . 0 1 0 1 1 1 +x* 0 0 0 . 0 1 0 1 1 1 0 ?2 0 0 0 . 0 0 0 1 0 1 1 1 0 0 .0 1 0 1 + 0 0 0 . 0 1 0 1 1 1 +x* 0 0 0 . 0 1 1 1 0 0 0 ?2 0 0 0 . 0 0 0 1 1 1 0 0 1 1 0 0 .0 1 + 0 0 0 . 0 1 0 1 1 1 +x* 0 0 0 . 0 1 1 1 1 0 0 ?2 0 0 0 . 0 0 0 1 1 1 1 0 0 0 1 1 0 0 . +0 结果同一位乘, x·y= 0. 000 111 100 011,,,,,,,,,,,补码一位乘:部分积 乘数[y]补 yn+1 0 0 . 0 0 0 0 0 0 1 . 1 0 1 0 1 1 0 + 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 . 0 1 0 1 1 1 ?1 0 0 . 0 0 1 0 1 1 1 1 . 1 0 1 0 1 1 —— +0 ?1 0 0 . 0 0 0 1 0 1 1 1 1 . 1 0 1 0 1 + 1 1 . 1 0 1 0 0 1 +[x]补 1 1 . 1 0 1 1 1 0 ?1 1 1 . 1 1 0 1 1 1 0 1 1 1 . 1 0 1 0 + 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 . 0 0 1 1 1 0 ?1 0 0 . 0 0 0 1 1 1 0 0 1 1 1 . 1 0 1 + 1 1 . 1 0 1 0 0 1 +[x]补 1 1 . 1 1 0 0 0 0 ?1 1 1 . 1 1 1 0 0 0 0 0 0 1 1 1 . 1 0 + 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 . 0 0 1 1 1 1 ?1 0 0 . 0 0 0 1 1 1 1 0 0 0 1 1 1 . 1 —— +0,,,,,,,,,,,,,,,,,,,补码两位乘: 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 1 0 1 0 1 1 0 + 0 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 0 . 0 1 0 1 1 1 ?2 0 0 0 . 0 0 0 1 0 1 1 1 1 1 .1 0 1 0 1 + 0 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 0 . 0 1 1 1 0 0 ?2 0 0 0 . 0 0 0 1 1 1 0 0 1 1 1 1 . 1 0 1 + 0 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 0 . 0 1 1 1 1 0 ?2 0 0 0 . 0 0 0 1 1 1 1 0 0 0 1 1 1 1 . 1 清0 +0 结果同补码一位乘, x·y= 0. 000 111 100 011 00,,,,,,,,,,,(3) x= 19, y= 35 x=(10 011)2,y=(100 011)2 x*= [x]原= [x]补= 0,010 011 y*= [y]原= [y]补= 0,100 011 [-x*]补= [-x]补= 1,101 101 2x*= [2x]补= 0,100 110 [-2x*]补= [-2x]补= 1,011 010 x0=0,y0=0,z0=x0 ? y0=0 ? 0=0 x·y= x*×y*= [x×y]原= [x×y]补 = 0,001 010 011 001 运算过程如下:,原码一位乘: 部分积 乘数y* 0,0 0 0 0 0 0 1 0 0 0 1 1 —— +x* + 0,0 1 0 0 1 1 0,0 1 0 0 1 1 ?1 0,0 0 1 0 0 1 1 1 0 0 0 1 —— +x* + 0,0 1 0 0 1 1 0,0 1 1 1 0 0 ?1 0,0 0 1 1 1 0 0 1 1 0 0 0 —— +0 ?1 0,0 0 0 1 1 1 0 0 1 1 0 0 —— +0 ?1 0,0 0 0 0 1 1 1 0 0 1 1 0 —— +0 ?1 0,0 0 0 0 0 1 1 1 0 0 1 1 —— +x* + 0,0 1 0 0 1 1 0,0 1 0 1 0 0 ?1 0,0 0 1 0 1 0 0 1 1 0 0 1,,,,,,,,,,,,,,,,,原码两位乘: 部分积 乘数y* Cj 0 0 0,0 0 0 0 0 0 0 0,1 0 0 0 1 1 0 + 1 1 1,1 0 1 1 0 1 +[-x*]补 1 1 1,1 0 1 1 0 1 1 ?2 1 1 1,1 1 1 0 1 1 0 1 0 0,1 0 0 0 + 0 0 0,0 1 0 0 1 1 +x* 0 0 0,0 0 1 1 1 0 0 ?2 0 0 0,0 0 0 0 1 1 1 0 0 1 0 0,1 0 + 0 0 0,1 0 0 1 1 0 +2x* 0 0 0,1 0 1 0 0 1 0 ?2 0 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0 0, +0 结果同一位乘, x·y= 0,001 010 011 001,,,,,,,,,,,补码一位乘:部分积 乘数[y]补 yn+1 0 0,0 0 0 0 0 0 0,1 0 0 0 1 1 0 + 1 1,1 0 1 1 0 1 +[-x]补 1 1,1 0 1 1 0 1 ?1 1 1,1 1 0 1 1 0 1 0,1 0 0 0 1 1 —— +0 ?1 1 1,1 1 1 0 1 1 0 1 0,1 0 0 0 1 + 0 0,0 1 0 0 1 1 +[x]补 0 0,0 0 1 1 1 0 ?1 0 0,0 0 0 1 1 1 0 0 1 0, 1 0 0 0 —— +0 ?1 0 0,0 0 0 0 1 1 1 0 0 1 0,1 0 0 —— +0 ?1 0 0,0 0 0 0 0 1 1 1 0 0 1 0,1 0 + 1 1,1 0 1 1 0 1 +[-x]补 1 1,1 0 1 1 1 0 ?1 1 1,1 1 0 1 1 1 0 1 1 0 0 1 0, 1 + 0 0,0 1 0 0 1 1 +[x]补 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0,,,,,,,,,,,,,,,,,,补码两位乘: 部分积 乘数 yn+1 0 0 0,0 0 0 0 0 0 0 0,1 0 0 0 1 1 0 + 1 1 1,1 0 1 1 0 1 +[-x]补 1 1 1,1 0 1 1 0 1 ?2 1 1 1,1 1 1 0 1 1 0 1 0 0,1 0 0 0 1 + 0 0 0,0 1 0 0 1 1 +[x]补 0 0 0,0 0 1 1 1 0 ?2 0 0 0,0 0 0 0 1 1 1 0 0 1 0 0,1 0 0 + 1 1 1,0 1 1 0 1 0 +[-2x]补 1 1 1,0 1 1 1 0 1 ?2 1 1 1,1 1 0 1 1 1 0 1 1 0 0 1 0 0,1 + 0 0 0,0 1 0 0 1 1 +0 0 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0 0 结果同补码一位乘, x·y= 0. 000 111 100 011 00,,,,,,,,,,,,(4) x= 0. 110 11, y= -0.111 01 x*= [x]原= [x]补= 0. 110 11 [y]原=1.111 01,y*=0. 111 01 [y]补=1.000 11 [-x*]补= [-x]补= 1.001 01 2x*= [2x]补= 01.101 10 [-2x*]补= [-2x]补= 10.010 10 x0=0,y0=1,z0=x0 ? y0=0 ? 1=1 x*×y*=0.110 000 111 1 [x×y]原=1.110 000 111 1 [x×y]补=1.001 111 000 10 x·y= -0. 110 000 111 1 运算过程如下:,原码一位乘:部分积 乘数y* 0 . 0 0 0 0 0 . 1 1 1 0 1 —— +x* + 0 . 1 1 0 1 1 0 . 1 1 0 1 1 ?1 0 . 0 1 1 0 1 1 . 1 1 1 0 —— +0 ?1 0 . 0 0 1 1 0 1 1 . 1 1 1 —— +x* + 0 . 1 1 0 1 1 1 . 0 0 0 0 1 ?1 0 . 1 0 0 0 0 1 1 1 . 1 1 —— +x* + 0 . 1 1 0 1 1 1 . 0 1 0 1 1 ?1 0 . 1 0 1 0 1 1 1 1 1 . 1 —— +x* + 0 . 1 1 0 1 1 1 . 1 0 0 0 0 ?1 0 . 1 1 0 0 0 0 1 1 1 1,,,,,,,,,,,,,,,,,原码两位乘: 部分积 乘数y* Cj 0 0 0 . 0 0 0 0 0 0 . 1 1 1 0 1 0 + 0 0 0 . 1 1 0 1 1 +x* 0 0 0 . 1 1 0 1 1 0 ?2 0 0 0 . 0 0 1 1 0 1 1 0 . 1 1 1 + 1 1 1 . 0 0 1 0 1 +[-x*]补 1 1 1 . 0 1 0 1 1 1 ?2 1 1 1 . 1 1 0 1 0 1 1 1 1 . 0 1 + 0 0 1 . 1 0 1 1 0 +2x* 0 0 1 . 1 0 0 0 0 0 ?1 0 0 0 . 1 1 0 0 0 0 1 1 1 1 0 . +0 结果同一位乘, x·y= -0. 110 000 111 1,,,,,,,,,,,补码一位乘: 部分积 乘数[y]补 yn+1 0 0 . 0 0 0 0 0 1 . 0 0 0 1 1 0 + 1 1 . 0 0 1 0 1 +[-x]补 1 1 . 0 0 1 0 1 ?1 1 1 . 1 0 0 1 0 1 1 . 0 0 0 1 1 —— +0 ?1 1 1 . 1 1 0 0 1 0 1 1 . 0 0 0 1 + 0 0 . 1 1 0 1 1 +[x]补 0 0 . 1 0 1 0 0 ?1 0 0 . 0 1 0 1 0 0 0 1 1 . 0 0 0 —— +0 ?1 0 0 . 0 0 1 0 1 0 0 0 1 1 . 0 0 —— +0 ?1 0 0 . 0 0 0 1 0 1 0 0 0 1 1 . 0 + 1 1 . 0 0 1 0 1 +[-x]补 1 1 . 0 0 1 1 1 1 0 0 0 1 0 —— 清0,,,,,,,,,,,,,,,补码两位乘: 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 1 . 0 0 0 1 1 0 + 1 1 1 . 0 0 1 0 1 +[-x]补 1 1 1 . 0 0 1 0 1 ?2 1 1 1 . 1 1 0 0 1 0 1 1 . 0 0 0 1 + 0 0 0 . 1 1 0 1 1 +[x]补 0 0 0 . 1 0 1 0 0 ?2 0 0 0 . 0 0 1 0 1 0 0 0 1 1 . 0 0 + 1 1 0 . 0 1 0 1 0 +[-2x]补 1 1 0 . 0 1 1 1 1 ?1 1 1 1 . 0 0 1 1 1 1 0 0 0 1 0 . —— 清0 结果同补码一位乘, x·y= -0. 110 000 111 10,,,,,,,,,,, 关 键 词: 计算机 组成 原理 课后
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。