设计一个6进制加法计数器

数字电路... 数字电路 展开
 我来答
冰火梦幻
2013-12-03 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:416万
展开全部
#include <stdio.h>
#include <string.h>

void Add(char a[], char b[], char sum[]);

int main()
{
    char a[128] = {'\0'};
    char b[128] = {'\0'};

    while (2 == scanf("%s%s", a, b) )
    {
        char sum[128] = {'\0'};
        Add(a, b, sum);
        printf("%s + %s = %s (mod 6)\n", a, b, sum);
    }

    return 0;
}

void Add(char a[], char b[], char sum[])
{
    int a_len = strlen(a);
    int b_len = strlen(b);
    int sum_len = 0;
    int i = 0;
    int j = 0;
    int additional = 0;
    int now_sum = 0;
    char temp = '\0';
    for (i = a_len - 1, j = b_len - 1; i >= 0 || j >= 0; i--, j--)
    {
        now_sum = additional;
        if (i >= 0)
        {
            now_sum += a[i] - '0';
        }
        if (j >= 0)
        {
            now_sum += b[j] - '0';
        }
        sum[sum_len] = now_sum  % 6 + '0';
        additional = now_sum / 6;
        sum_len++;
    }

    if (additional > 0)
    {
        sum[sum_len++] = additional + '0';
    }

    for (i = 0, j = sum_len - 1; i < j; i++, j--)
    {
        temp = sum[i];
        sum[i] = sum[j];
        sum[j] = temp;
    }

    return;
}
帕剌斯
2024-10-30 广告
德国Palas 成立于1983年,总部位于德国巴登符腾堡州的卡尔斯鲁厄。作为气溶胶技术专家, Palas 致力于为用户提供气溶胶颗粒物的产生、处理、测量与分析解决方案,是该领域内全球先进的开发商和制造商。基于自身技术的独特优势,Palas ... 点击进入详情页
本回答由帕剌斯提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式