Re[2]: Hex string to value
От: chpunteg  
Дата: 28.10.10 20:37
Оценка:
Здравствуйте, Were, Вы писали:

W>А зачем ты представил signed long в виде unsigned long в строке? Пиши ее как -0x7FF8FFA9 и будет работать _tcstol.

как же, представил... Мне пришла такая строка — без унарного минуса! И я знаю только, что это тип HRESULT, т.е. просто signed long.

а даже если бы я сам представил, то почему HEX'овая строка 0x80070057 это unsigned? Я, например, вижу крайнем бите единицу, т.е. отрицательное значение.

Интересная ситуация выходит.
При конвертации signed в hex строку
   TCHAR sz[9];
   _ltot(E_INVALIDARG, sz, 16);
получу верное значение "80070057" (а не "-0x7FF8FFA9")
а при обратном — hex в signed
   _tcstol(_T("80070057"), NULL, 16);
получаю неверное LONG_MAX (0x7fffffff)

не логично как-то...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.