FinalDestiny117 发表于 2019-7-1 20:26:14

如何使用cout将十六进制转为十进制

如果是将十进制转为十六进制可以这么写:
cout<<"输入十进制整数:";
int a;
cin>>a;
cout<<hex<<a<<endl;
因为输入的是十进制可以用int来表示

我知道可以通过cout<<dex<<a输出十进制,但输入的十六进制该定义为何种类型呢?
我试过了整型和字符串数组都不可以,因为输入的是0x1A这类数据。

newu 发表于 2019-7-1 20:35:40

既然是整数那么定义int型是没问题的。
#include <iostream>
using namespace std;

int main()
{
        cout<<"输入十进制整数:";
        int a;
        cin >> hex >>a;
        cout << "0x"<< hex << a << endl;
        return 0;       
}
结果:
输入十进制整数:0x66
0x66
Press any key to continue

FinalDestiny117 发表于 2019-7-1 21:54:24

newu 发表于 2019-7-1 20:35
既然是整数那么定义int型是没问题的。

结果:

现在是要求输入十六进制,然后转换成十进制,所以我对于存放十六进制的变量类型就不知道了

newu 发表于 2019-7-1 22:04:41

FinalDestiny117 发表于 2019-7-1 21:54
现在是要求输入十六进制,然后转换成十进制,所以我对于存放十六进制的变量类型就不知道了

如果输出十进制直接cout << a <<endl;就好了
都是int型来存放的。

FinalDestiny117 发表于 2019-7-2 02:00:29

newu 发表于 2019-7-1 22:04
如果输出十进制直接cout

cout<<"输入十六进制整数:";
int a;
cin>>a;
cout<<dec<<a<<endl;
我试过了这样不行,测试数据是0x1A的话输出只有0

newu 发表于 2019-7-2 08:46:29

FinalDestiny117 发表于 2019-7-2 02:00
我试过了这样不行,测试数据是0x1A的话输出只有0

代码(加不加dec都没关系):
int main()
{
        cout<<"请输入一个十六进制数:";
        int a;
        cin >> hex >>a;
        cout << dec<< a << endl;
        return 0;       
}
结果:
请输入一个十六进制数:0x66
102
Press any key to continue

FinalDestiny117 发表于 2019-7-2 12:29:37

newu 发表于 2019-7-2 08:46
代码(加不加dec都没关系):

结果:

解决了,3Q~
页: [1]
查看完整版本: 如何使用cout将十六进制转为十进制