2
ので、私は私がしたこれ、小数に2進数、8進数または16進数に変換C++プログラムを書くためにこの割り当てを持っていて、ここに私のコードは次のとおりです。今2進、8進、10進プログラムへの進
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
long two2ten(string s)
{
int m = 0;
for (size_t i = 0; i < s.size(); i++)
{
m = 2 * m + (s[i] - '0');
}
return m;
}
long oct2dec(int n)
{
long int m = 0, i = 0;
while (n != 0)
{
m = m + (n % 10)* pow(8, i++);
n = n/10;
}
return m;
}
long hex2dec(string s)
{
long result = 0;
for (size_t i = 0; i < s.length(); i++)
{
if (s[i] >= 48 && s[i] <= 57)
{
result += (s[i] - 48)*pow(16, s.length() - i - 1);
}
else if (s[i] >= 65 && s[i] <= 70) {
result += (s[i] - 55)*pow(16, s.length() - i - 1);
}
else if (s[i] >= 97 && s[i] <= 102) {
result += (s[i] - 87)*pow(16, s.length() - i - 1);
}
}
return result;
}
int main()
{
int k, n;
string s;
while (cin >> k)
{
if (k == 2)
{
cin >> s;
cout << two2ten(s) << endl;
}
else if (k == 8)
{
cin >> n;
cout << oct2dec(n) << endl;
}
else if (k == 16)
{
cin >> s;
cout << hex2dec(s) << endl;
}
else
{
cin >> n;
}
}
return 0;
}
、しかし、それは私の先生にコンパイルエラーを与える(そして、なぜ彼は言うのでもない)。私は数日のうちに壁に頭を打っていましたが、何が間違っているかはまだ分かりません。誰かが私にそれを助けてくれますか?
でコードをコンパイルし、問題を自分で確認してください。どのようにコンパイルしますか?おそらく、あなたが珍しいオプションを使用するかどうかを提案することができます。 – BoBTFish
コンパイラと彼が使っているOSを聞いてもいいですか? –
コンパイラ/オプションは何ですか?あなたの先生は何ですか? – wasthishelpful