2015-03-26 4 views
2

У меня есть шестнадцатеричное строковое значение. Я хочу преобразовать его в целое число.Преобразование Str (hex int) в Dec Int

function HexStrToInt(const str: string): Integer; 
begin 
    Result := ??; 
end; 

таким образом, что HexStrToInt('22'), например, возвращает 34.

+2

возможно дубликат [Преобразование шестнадцатеричного ул в десятичное значение в Дельфах] (http://stackoverflow.com/questions/13841972/convert-hex-str- to-decimal-value-in-delphi) –

+2

FWIW, я немного изменил ваш вопрос. Вы сказали, что хотите получить десятичное целое число. Это оксюморон. Целое число содержит значение. Десятичные или шестнадцатеричные, двоичные или восьмеричные и т. Д. Относятся к представлениям значения. Таким образом, 22 и 34 доллара фактически представляют собой одно и то же значение, но разные представления этого значения. –

+0

спасибо, ты лучший мастер дельфи :) –

ответ

9

Пожалуй, проще всего сделать это:

function HexStrToInt(const str: string): Integer; 
begin 
    Result := StrToInt('$' + str); 
end; 
+4

Кроме того, как может быть полезно, 'function TryHexStrToInt (const str: string; out value: integer): boolean ; 'with' result: = TryStrToInt ('$' + str, value) '. Полезно для ловли ошибок, если вход не гарантированно хорошо отформатирован. http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.TryStrToInt –

Смежные вопросы