C ++ - DWORD Decimal в DWORD Hexadecimal

Как преобразовать десятичное число в шестнадцатеричное в C ++? У меня был успех с ultoa, но это дает вам char (и использование (DWORD) Buffer для std :: cout просто заканчивается тарабарщиной). Также мне нужно снова сохранить новый шестнадцатеричный формат в DWORD.

Мой код на данный момент:

//Vars
char Buffer[33];

// Client.dll
DWORD d_clientDll = (DWORD)GetModuleHandleA("client.dll");
_ultoa(d_clientDll, Buffer, 16);
std::cout << Buffer << std::endl;
std::cout << d_clientDll << std::endl;

person Shuzuka    schedule 30.04.2017    source источник
comment
@harold Не совсем.   -  person Shuzuka    schedule 30.04.2017
comment
@harold Так как я хочу сохранить его в другом DWORD, тогда этого нет в другом посте.   -  person Shuzuka    schedule 30.04.2017
comment
Хорошо, это легко, просто сохраните старый DWORD, нет смысла преобразовывать что-то в строку, а затем снова возвращаться   -  person harold    schedule 30.04.2017
comment
@harold Нет, поскольку мне нужен DWORD в шестнадцатеричном формате.   -  person Shuzuka    schedule 30.04.2017
comment
Этого не существует. Только строки являются десятичными / шестнадцатеричными и т. Д. DWORD - это само значение, на самом деле не в какой-либо базе - ну, вы можете возразить, что оно в базе 2³² или что в глубине души оно двоично, но в основном это не имеет значения.   -  person harold    schedule 30.04.2017
comment
@harold Это в основном то, чего я пытаюсь достичь: hastebin.com/otozurariy.cpp   -  person Shuzuka    schedule 30.04.2017
comment
Какой тип clientDll   -  person harold    schedule 30.04.2017
comment
@harold Это DWORD   -  person Shuzuka    schedule 30.04.2017
comment
Так что это просто Offsets::clientDll = d_clientDll; тогда   -  person harold    schedule 30.04.2017
comment
@harold Это приведет к десятичному формату. Мне нужен шестнадцатеричный. (Например: public const Int32 m_ArmorValue = 0xAA04; но для C ++)   -  person Shuzuka    schedule 30.04.2017
comment
Нет, DWORD не имеет десятичного формата. У него также нет шестнадцатеричного формата. У него нет формата. 0xAA04 - это то же число, что и 43524.   -  person harold    schedule 30.04.2017
comment
Позвольте нам продолжить это обсуждение в чате.   -  person harold    schedule 30.04.2017


Ответы (1)


Вы пробовали std::hex?

std::cout << std::hex << d_clientDll << std::endl
person Martin Beckett    schedule 30.04.2017
comment
Удивительно, но это внезапно сработало (раньше использовал метод с std :: hex, это не сработало). Как бы вы сейчас сохранили это в DWORD? (Offsets :: clientDll = std :: hex ‹< d_clientDll; не работает.) - person Shuzuka; 30.04.2017