#include<stdio.h>int Binary_add(int* Binary1,int* Binary2)//自定义的用于辅助的紧耦合函数,用于实现本题中二进制的加法运算 {int i;for(i=31;i>0;i--){Binary2[i]+=Binary1[i];if(Binary2[i]>1){Binary2[i]-=2;Binary2[i-1]++;}}if(Binary2[0]>1){Binary2[0]-=2;return 1;}else return 0;} int main(void) {int Product1_register[32];int Product2_register[32];int i,j;int PY_register[64];int C_register;printf("请输入需要进行相乘的两个二进制原码(32位):\n");for(i=0;i<32;i++){scanf("%d",&Product1_register[i]);}for(i=0;i<32;i++){scanf("%d",&Product2_register[i]);}for(i=0;i<32;i++){PY_register[i]=0;}for(i=32;i<64;i++){PY_register[i]=Product2_register[i-32];}printf("被乘数寄存器中的值保持不变如下:\n");for(i=0;i<32;i++){printf("%d",Product1_register[i]);} printf("\n");printf("递推次数\t乘积寄存器\t 乘数寄存器\n");printf("第0次递推\t");for(j=0;j<64;j++){if(j==32)printf("\t");printf("%d",PY_register[j]);}printf("\n");for(i=0;i<32;i++){if(PY_register[63]==1){C_register=Binary_add(Product1_register,PY_register);}for(j=63;j>0;j--){PY_register[j]=PY_register[j-1];}PY_register[0]=C_register;printf("第%d次递推\t",i+1); for(j=0;j<64;j++){if(j==32)printf("\t");printf("%d",PY_register[j]);}printf("\n");}return 0;}
1200字范文,内容丰富有趣,写作的好帮手!