Прочитать последовательность положительных чисел и распечатать их двоичное представление - PullRequest
0 голосов
/ 10 декабря 2018

Эй, программисты, кто-нибудь может мне помочь с задачей в заголовке,
пример ввода: 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 голосов
/ 10 декабря 2018

Вам нужно написать цикл для ввода каждого десятичного числа.ИМХО, самый простой способ - прочитать входную последовательность в строке, а затем прочитать одно за другим целое число.Я оставлю вывод печати как запятую, чтобы вы могли разобраться.

#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;
}
...