嘿,任何人都可以帮助我完成标题中的任务,
输入示例: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;
}
但是我似乎找不到从输入中读取数字序列的方法。我环顾四周,但找不到一种方法来读取序列中以逗号分隔的数字。
谁能告诉我或告诉我一种方法。
答案 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;
}