试图制作一个C ++程序将4位八进制数转换为十进制数

时间:2011-04-13 01:16:26

标签: c++

这是我的代码,我试过谷歌搜索但我可以找到为什么我的代码没有正确转换数字。但它符合要求。你能告诉我为什么它不起作用以及我该怎么做才能解决它。

#include <iostream> 
using namespace std; 

int main() 
{ 
    char a = 0; 
    char b = 0; 
    char c = 0; 
    char d = 0;

    cout << "Enter 4 digit octal number "; 
    cin >> a >> b >> c >> d; 

    cout << "Decimal form of that number: " << (a * 512) + (b * 64) + (c * 8) + d << endl; 

    return 0; 

}

3 个答案:

答案 0 :(得分:5)

因为您将值作为字符获取,所以它们可能是您乘以的ascii值。尝试使用(a-'0'),(b-'0')等

您还应验证输入,以确保它是0到7之间的数字。

答案 1 :(得分:2)

为什么不让标准库完成这项工作?

#include <ios>
#include <ostream>
#include <iostream>

int main()
{
    unsigned n;
    std::cin >> std::oct >> n;
    std::cout << n << std::endl;
}

答案 2 :(得分:0)

将您的值(a,b,c,d)转换为整数,然后乘以。