数字基础中关于gray码转二进制码问题(C++)

本文介绍了一种使用C++编程语言将GRAY码转换为二进制码的方法,并提供了一个易于理解的代码示例。通过定义一个NOR门结构体,程序能够逐位地完成转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gray码转二进制其实并不是一个复杂的问题,但牵扯大量计算。我们不妨偷懒一下,用计算机来帮我们计算。废话不多说,直接上代码。


#include <iostream>

using namespace std;

struct NOR
{
    int input1,input2;
    public:
    NOR(int i1,int i2):input1(i1),input2(i2){}
    int output()
    {
        if(input1!=input2)
        return 1;
        else
        return 0;
    }
};

int main()
{
    cout << "请输入要转换的GRAY码:" ;
    char gray[20];
    cin>>gray;
    cout<<"转换后的gray码是"<<gray[0];

    int tmp=gray[0]-'0';
    NOR n1(0,0);
    for(int i=1;gray[i]!='\0';i++)
    {
        n1.input1=tmp;
        n1.input2=gray[i]-'0';
        tmp=n1.output();
        cout<<tmp;
    }

    return 0;
}

代码可读性还是比较强的,我就不多阐述了。另外,注意一下如果转换的gray码超过二十位,读者只要自己更改数组大小即可
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值