当时是大学二年级的时候学习微机原理,老师留的作业,然后五一长假去成都旅游时候用同学的电脑的记事本写的这个程序,程序不是很规范,因为当时还不了解匈牙利命名规则,就用初学者常见的拼音命名。
这是很长时间以前写的,所以回忆起来也有些困难(毕竟很久没有接触coding了)大概思路主要是根据微机原理中的乘法器实现的公式,如果有书的同学可以看一下。然后利用加法器实现并行运算的乘法器,我记得书上还有门电路的图,比较直观(微机原理的书然我同学借走没还我,shit),下面简单的解释一下代码,希望同学尽量理解吧,即使这个程序不能帮助你完全理解,至少我相信也能够给你提供一些思路,毕竟我现在很久很久没有做这些东西,希望体谅哈!
--------------------------------------------------------------------------------
#include<stdio.h>
int yihuo(int m,int n)//这里是定义一个异或函数
{
#include<stdio.h>
int yihuo(int m,int n)
{
if(m==n)
return 0;
else
return 1;
}
void main()
{
int a[5],b[5],c[5],d[5],G[5],P[5],V,Z,N,C,k,i;
int D=0;
printf('please enter a:\n');
for(i=0;i<5;i++)
scanf('%d',&a[4-i]);
printf('please enter b:\n');
for(i=0;i<5;i++)
scanf('%d',&b[4-i]);
for(i=0;i<5;i++)
{
G[i]=a[i]&&b[i];
P[i]=a[i]||b[i];
}
c[0]=yihuo(yihuo(a[0],b[0]),D);
d[0]=G[0]||P[0]&&D;
c[1]=yihuo(yihuo(a[1],b[1]),(G[0]||P[0]&&D));
d[1]=G[1]||P[1]&&(G[0]||P[0]&&D);
c[2]=yihuo(yihuo(a[2],b[2]),(G[1]||P[1]&&(G[0]||P[0]&&D)));
d[2]=G[2]||P[2]&