C:将十六进制转换为十进制

新手上路,请多包涵

我正在寻找一种将 hex(十六进制)轻松转换为 dec(十进制)的方法。我找到了一个简单的方法来做到这一点:

 int k = 0x265;
cout << k << endl;

但是我不能输入 265 。无论如何它是否可以这样工作:

输入: 265

输出: 613

反正有这样做吗?

注意: 我试过了:

 int k = 0x, b;
cin >> b;
cout << k + b << endl;

它不起作用。

原文由 zeulb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 563
2 个回答
#include <iostream>
#include <iomanip>
#include <sstream>

int main()
{
    int x, y;
    std::stringstream stream;

    std::cin >> x;
    stream << x;
    stream >> std::hex >> y;
    std::cout << y;

    return 0;
}

原文由 smichak 发布,翻译遵循 CC BY-SA 4.0 许可协议

我认为这更清洁,它也适用于你的例外。

 #include <iostream>
using namespace std;
using ll = long long;
int main ()
{
    ll int x;
    cin >> hex >> x;
    cout << x;
}

原文由 Hasibul Islam Sourav 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题