Довідник : одиниці вимірювання, система числення, час у різних країнах
Radix : LongInt; // основа введеного числа
NewRadix : LongInt; // основа шуканого числа
var
ResultStr : String);// шукане число
var
RadixChar : String;
v : Int64; //111111111111111111111111111111111111111111111111111111111111111
i : LongInt;
p : Int64;
begin
if ((Abs(Radix) < 2) or (Abs(Radix) > 36)) then Exit;
if ((Abs(NewRadix) < 2) or (Abs(NewRadix) > 36)) then Exit;
RadixChar:='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
ResultStr:= Copy( NumStr, 0, Length(NumStr));
v := 0;
UpperCase(ResultStr); // перевірка та задання початкових параметрів
for i := 1 to (Length(ResultStr)) do
begin
p := Pos(ResultStr[i] , RadixChar) - 1;
if ((p < 0) or (p >= Abs(Radix))) then begin
Exit; // Перевірка правильності вводу
end;
v := v * Abs(Radix) + p; // підрахунок числа в десятковому форматі
if (v < 0 ) then begin
ResultStr:= 'Помилка вводу значення перевищує 64^2 = '+IntToStr(High(Int64))+'(10)';