ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:27.21KB ,
资源ID:16522642      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16522642.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(booth算法实验报告Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

booth算法实验报告Word文档下载推荐.docx

1、末位加一时需注意,若最后一位为零,则置末位为1,进位标志为零,反之,若最后一位为一,置末位为0,进位标志为1,向前进位。3.Booth算法 在Booth算法的实现中,包括加法和移位两种操作。实现算法时,乘法运算前A寄存器被清零,作为初始部分积。Q寄存器末位清零,作为附加位的初态。被乘数的补码存在X中(双符号位),乘数的补码在Q高n+1位中,计数器C存放乘数的位数n。乘法开始后,根据Q寄存器末两位Qn,Qn+1的状态决定部分积与被乘数相加还是相减,或是不加也不减,然后按补码规则进行算数移位,这样重复n次。最后,根据Q的末两位状态决定部分积与被乘数相加还是相减,或是不加也不减,但不必移位,这样便可

2、得到最后结果。 五、程序框图开始 开始 输入X真值 Int b 输入X的符号 Buffer0=sign 求X的补码 Sign=0 输入Y的真值 X补=X 绝对值按位取反 输入Y的符号 末位加一 求Y的补码 求得补码 输出Y的补码 输出补码 输出-X的补码 输出Y的补码 结束 Booth算法 输出结果 结束 求补函数 主函数 开始 0?A,0?Qn+1 被乘数(补码)?X 乘数(补码)?Q n?C 10 01 QnQn+1 00 (A)-(D) ?A (A)+(D) ?A 11 A,Q同时算数右移一位 (C)-1?N Y C=0?00 (A)+(X) ?A 11 (A)-(X) ?A Booth

3、算法执行框图 六、程序源代码 #include#define n 4 int xsign,ysign,x_sign;int Z2*n+2=0; /部分积连接乘数移动后的数组 即输出结果 int Xn+1;int Yn+1;int Xfbn+1;int *Xbuffer,*Ybuffer,*X_buffer;int str1n,str2n,str3n; void BOOTH (int strX,int strY,int str_xb)/strY是乘数数组指针 strX是被乘数补码指针str_xb是负的被乘数的补码指针 int x=0,i,j,r;int b=0;/进位标志位 int a20=0;

4、 /存入部分积,部分积的初值为零 int feg;for(i=0;i=1;j-) if(strYj=0&x=0)|(strYj=1&x=1) /算术右移 feg=Z0;2*n+2;i+) Z2*n+1-i=Z2*n-i;/最后一位开始后移 Z0=feg; /最后一位设成标志位 else if(strYj=0&x=1) b=0;for(i=n;i=0;i-) if(Zi+strXi+b=2)/加x的补码 Zi=Zi+strXi+b-2;b=1;else if(Zi+strXi+b=2) Zi=Zi+str_xbi+b-2;else if(Zi+str_xbi+bZi=Zi+str_xbi+b;x

5、=strYj;if(strY0=0&else if(strY0=1&/结果输出 for(int hp=0;hp=2*n;hp+) if(hp=1) printf(.%d,Zhp);else %d int * Complement(int *str,int *buffer,int sign) int b;buffer0=sign;if(sign=0) for(int i=1;bufferi=stri-1;else for(int m=0;mk-) if(bufferk+b)=2) bufferk=0;else if(bufferk+bbufferk=bufferk+b;else if(buffe

6、rn=0) buffern=1;return buffer;int main() 布斯算法的实现n);请输入X的绝对值:nfor(int j=0;jj+) scanf(,&str1j);请输入X的符号:xsign);Xbuffer=Complement(str1,X,xsign);请输入Y的绝对值:for(int py=0;pypy+) str2py);请输入Y的符号:ysign);Ybuffer=Complement(str2,Y,ysign);for(int k=0;kk+) Xk=Xbufferk;X的补码是:for(int mj=0;mjmj+) if(mj=1) ,Xmj);for(int i=0;str3i=Xi+1;X_buffer=Complement(str3,Xfb,1);if(xsign=1) Xfb0=0;Xfb0=1;for(int pk=1;pkpk+) Xfbpk=X_bufferpk;-X的补码是:for(int nj=0;njnj+) if(nj=1) ,Xfbnj);for(int mk=0;mkmk+) Yk=Ybuffermk;Y的补码是:for(int qj=0;qjqj+) if(qj=1) ,Yqj);reslut:X*Y=BOOTH(X,Y,Xfb);return 0;七、运行结果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1