如何用C语言实现简单的全加器
最近看了coursera的课程,里面说到了使用电路就可以实现二进制加法,碍于没有电路设计工具,只能用C实现全加器,仅供参考
coursera课程链接
#include <stdio.h>
int main()
{
int a[8] = {0, 1, 0, 1, 0, 1, 1, 0};
int b[8] = {0, 0, 0, 1, 1, 1, 0, 0};
int sum[8] = {0};
// 最终效果 01110010
// 全加器 代码只能用来计算7位 第8位计算会将索引超过数组边界
for (int i = 7; i > -1; i--)
{
if (a[i] ^ b[i])
{
if (sum[i])
{
sum[i - 1] = 1;
sum[i] = 0;
}
else
{
sum[i] = 1;
}
}
else
{
if (sum[i])
{
if (a[i])
{
sum[i] = 1;
sum[i - 1] = 1;
}
}
else
{
if (a[i])
{
sum[i] = 0;
sum[i - 1] = 1;
}
}
}
}
for (int i = 0; i < 8; i++)
{
printf_s("%d", sum[i]);
}
getchar();
}