Действительно шедевр....
Распечатай и повесь в сортире.
================================================
Итак, обратная задача- из строки сделать integer
Самое умное- использоваь то что изобрели до тебя.
См. функцию HexToBin в справке
Вот пример ее использования.
Код:
var
Buf:array[0..15] of byte;
HexToBin('ff', @Buf[2], 1); //засылает результат во 2 байт буфера
Здесь функция преобразует строковое HEX-представление в число
и пишет в буфер.
Единственный ее недостаток- непонятно как она это делает.
Поэтому привожу свой код (только как иллюстрация)
Код:
function HexToStr(s:string):longword;
var
i:integer;
begin
s:='0'+Trim(s);
Result:=0;i:=1;
for i:=1 to length(s) do
case s[i] of
'0'..'9':Result:=Result*16 + ord(s[i])-48;
'A'..'F':Result:=Result*16 + ord(s[i])-55;
'a'..'f':Result:=Result*16 + ord(s[i])-87;
end //case
end;
Здесь понятен принцип. Если символ находится от '0' до '9'
то от его порядкового номера вычитается 48.
Это потому что символ '0' занимает 48-ю клетку в таблице кодировки
а ему соответствует численное значение 0.
и символы '0'..'9' расположены подряд.
Аналогично и с символами 'a'..'f'
Вот и вся механика.