读取正数序列并打印其二进制表示形式

时间:2018-12-10 18:23:16

标签: c++ binary sequence

嘿,任何人都可以帮助我完成标题中的任务,
输入示例:3,8
示例输出:11,1000
到目前为止,我找到了一种使用以下代码将十进制数字转换为二进制的方法:

#include <iostream>
#include <cmath>
using namespace std;

int convertDecimalToBinary(int);

int main()
{
    int deci, binaryNumber;

    cout << "Enter a decimal number: ";
    cin >> deci;
    binaryNumber = convertDecimalToBinary(deci);
    cout << deci << " in decimal = " << binaryNumber << " in binary" << endl ;
    return 0;
}

int convertDecimalToBinary(int deci)
{
    int binaryNumber = 0;
    int remainder, i = 1;

    while (deci!=0)
    {
        remainder = deci%2;
        deci /= 2;
        binaryNumber += remainder*i;
        i *= 10;
    }
    return binaryNumber;
}

但是我似乎找不到从输入中读取数字序列的方法。我环顾四周,但找不到一种方法来读取序列中以逗号分隔的数字。
谁能告诉我或告诉我一种方法。

1 个答案:

答案 0 :(得分:0)

您需要编写一个循环以输入每个十进制数字。恕我直言,最简单的方法是读取字符串中的输入序列,然后一一读取整数。我将打印输出以逗号分隔,以便您找出。

#include <iostream>
#include <sstream>
#include <cmath>
using namespace std;

int convertDecimalToBinary(int);

int main()
{
    int deci, binaryNumber;

    std::string decimal_sequence;
    cout << "Enter a decimal number: ";
    cin >> decimal_sequence;
    std::istringstream din(decimal_sequence);
    while(din >> deci) {
            binaryNumber = convertDecimalToBinary(deci);
            cout << deci << " in decimal = " << binaryNumber << " in binary" << endl ;
            char comma;
            din >> comma;
    }
    return 0;
}