gpt4 book ai didi

c++ - 在 C++ 中将十六进制字符串转换为十进制数

转载 作者:行者123 更新时间:2023-11-30 01:39:35 27 4
gpt4 key购买 nike

我想在 C++ 中将十六进制字符串转换为十进制数(整数)并尝试了以下方法:

std::wstringstream SS;
SS << std::dec << stol(L"0xBAD") << endl;

但它返回 0 而不是 2989

std::wstringstream SS;
SS << std::dec << reinterpret_cast<LONG>(L"0xBAD") << endl;

但它返回 -425771592 而不是 2989

但是,当我像下面这样使用它时,它工作正常并按预期给出 2989

std::wstringstream SS;
SS << std::dec << 0xBAD << endl;

但我想输入一个字符串并得到 2989 作为输出,而不是像 0xBAD 这样的整数输入。例如,我想输入 "0xBAD" 并将其转换为整数,然后转换为十进制数。

提前致谢。

最佳答案

// stol example
#include <iostream> // std::cout
#include <string> // std::string, std::stol

int main ()
{
std::string str_dec = "1987520";
std::string str_hex = "2f04e009";
std::string str_bin = "-11101001100100111010";
std::string str_auto = "0x7fffff";

std::string::size_type sz; // alias of size_t

long li_dec = std::stol (str_dec,&sz);
long li_hex = std::stol (str_hex,nullptr,16);
long li_bin = std::stol (str_bin,nullptr,2);
long li_auto = std::stol (str_auto,nullptr,0);

std::cout << str_dec << ": " << li_dec << '\n';
std::cout << str_hex << ": " << li_hex << '\n';
std::cout << str_bin << ": " << li_bin << '\n';
std::cout << str_auto << ": " << li_auto << '\n';

return 0;
}

关于c++ - 在 C++ 中将十六进制字符串转换为十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45353171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com