У меня есть строка:Преобразование шестнадцатеричной строки в целое с таким же форматированием
string s = "0x10"
Я хочу, чтобы найти способ, чтобы преобразовать это к int
с тем же значением, то есть:
int x = 0x10
Я получаю строку "0x10"
из следующего кода при использовании cout << s
: :
std::stringstream stream;
stream << "0x" << hex << setw(2) << setfill('0') << int(h) << endl;
string s = stream.str();
я получить правильный результат при использовании int h = 16
(который 0x10
в шестнадцатеричном)
Есть ли способ сделать это?
просто так мы понимаем. Код, который вы показываете, состоит в том, чтобы сделать строку «0x10». Вы хотите знать, как конвертировать «0X10» в 16? – pm100
Я думаю, что OP хочет, чтобы целое число 16 каким-то образом забыло печатать как 0x10, когда 'cout' используется для вывода. Хотя пример кода делает это более запутанным. – drescherjm
'0x10 == 16 == 0b10000 == 020' Все они представляют одно и то же. Это то, как вы их показываете. – NathanOliver