2016-12-19 81 views
-1

为int我有一个字符串:转换为十六进制字符串相同的格式

string s = "0x10" 

我想找到一种方法,此具有相同的值转换为int,那就是:

int x = 0x10 

我从下面的代码使用cout << s时获取字符串"0x10"

std::stringstream stream; 
stream << "0x" << hex << setw(2) << setfill('0') << int(h) << endl; 
string s = stream.str(); 

我得到正确的结果,如果使用int h = 16(这是十六进制0x10

有没有办法做到这一点?

+2

只是让我们明白。你显示的代码是使字符串“0x10”。你想知道如何将“0X10”转换为16? – pm100

+1

我认为当'cout'用于输出时,OP想要整数16以某种方式记得打印为0x10。虽然代码示例使这更加混乱。 – drescherjm

+1

'0x10 == 16 == 0b10000 == 020'它们都代表相同的东西。这是你如何展示重要的。 – NathanOliver

回答

-4

它的什么u有

istringstream iss(s); 
int x; 
iss >> hex >> x; 

std::stoi

好像也许你感到困惑相反 - 说你在INT要为0x10,而这16那是你是如何转换的问题int到一个字符串。 int在内存中始终为0b00010000

+2

你是如何得到18.1k这样的答案的? –

+0

我做错了什么?我的istream使用错误(有点生锈) – pm100

+0

您的答案正在逐渐趋向于相关和有用的东西,但它肯定不是那些开始的事情之一。它也有演示问题。 inb4“我在我的手机上”好吧然后等到你没有! –

相关问题