donc j'eu cette mission d'écrire un programme C++ qui convertit binaire, octal ou hexadécimal en décimal, que je l'ai fait, et voici mon code:binaire, octal, Hexadécimal au programme décimal
#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;
}
Maintenant, cela fonctionne parfaitement bien pour moi, mais il donne une erreur de compilation à mon professeur (et il ne dit pas pourquoi). Je me suis cogné la tête contre le mur pendant quelques jours et je n'arrive toujours pas à comprendre ce qui ne va pas. Est-ce que quelqu'un pourrait m'aider avec ça?
S'il ne dit pas pourquoi, c'est à peine juste. Comment compilez-vous? Peut-être que nous pouvons suggérer si vous utilisez une option inhabituelle. – BoBTFish
Peut-être lui demander le compilateur et l'OS qu'il utilise? –
Quels sont votre compilateur/options? Quels sont tes professeurs? – wasthishelpful