C ++二进制转换类

时间:2016-11-02 02:19:57

标签: c++

美好的一天。因此,对于作业,我的任务是创建6类不同的函数。但是,我特别遇到1问题,这要求我创建一个带二进制数并将其转换为小数的类。以下是我从分配提供的驱动程序文件中获得的内容:

     #include <iostream>
     using std::cout;
     using std::cin;
     using std::endl;


    #include "binaryconversion.h"

    int main()
    {
    ///*********************************Testing BinaryConversion                     Class************************************************/
    cout<<"Creating BinaryConversion object\n\n\n";
    BinaryConversion binary;
    cout<<"Binary value 111 to decimal = 3\n";//7
    cout<<"Actual function result: " << binary.binaryToDecimal(111);
    cout<<"Binary value 101001 to decimal = 41\n";
    cout<<"Actual function result: " << binary.binaryToDecimal(101001);
    cout<<"Binary value 11100 to decimal = 28\n";
    cout<<"Actual function result: " << binary.binaryToDecimal(11100);

   return 0;
   }

对于.h文件我有:

   #ifndef BINARYCONVERSION_H
   #define BINARYCONVERSION_H

   #include <iostream>
   using std::cout;
   using std::cin;
   using std::endl;

   class BinaryConversion
   {
   public:
         BinaryConversion();
         void binaryToDecimal(int);


   };

    #endif // BINARYCONVERSION_H

最后,对于.cpp,我有这个:

    #include "binaryconversion.h"

    BinaryConversion::BinaryConversion()
    {

    }

    void BinaryConversion::binaryToDecimal(int){

        int decimalNumber = 0, y = 0, remainder;
        while (x!=0)
        {
            remainder = n%10;
            n /= 10;
            decimalNumber += remainder*pow(2,y);
            ++y
        }
        return decimalNumber;
    }

现在我的问题是,当我构建文件时,我在驱动程序文件中的以下行中出现错误:

cout<<"Actual function result: " << binary.binaryToDecimal(111);


cout<<"Actual function result: " << binary.binaryToDecimal(101001);


cout<<"Actual function result: " << binary.binaryToDecimal(11100);

我可能做错了什么?

编辑:在完成所有修正建议后,当前代码如下:

    #include <iostream>
    using std::cout;
    using std::cin;
    using std::endl;

    class BinaryConversion
    {
    public:
        BinaryConversion();
        int binaryToDecimal(int x);

    private:
        int x;
        int n;


    };

    #endif // BINARYCONVERSION_H

的.cpp:

    int BinaryConversion::binaryToDecimal(int x){

       int decimalNumber = 0, y = 0, remainder;
        while (x!=0)
        {
            remainder = x%10;
            x /= 10;
            decimalNumber += remainder* 1 >> y;
            ++y;
        }
        return decimalNumber;
    }

1 个答案:

答案 0 :(得分:0)

您的 void BinaryConversion::binaryToDecimal(int) 功能未正确实现。首先,您将值传递给函数,但未正确写入参数名称。它应该是binaryToDecimal(int x)。因此您会收到此错误。

其次,返回类型不应该为void,因为它返回一个整数值给调用函数。因此,返回类型应为int

功能应如下所示:

void BinaryConversion::binaryToDecimal(int x){
int decimalNumber = 0, y = 0, remainder;
     while (x!=0){
     remainder = x%10;
     x /= 10;
     decimalNumber += remainder*pow(2,y);
     ++y;
   }
   return decimalNumber;
}