1 (изменено: Freeman, 01.07.2020 в 14:48)

Тема: Модуль SysUtils

Я подумал, что, так как, всё равно ещё нужны будут такие функции, как IntToHex, то было бы полезно иметь функцию конвертирования числа в строку.

Я в своей программе tinfo использовал функцию ConvertToBase.
Эта функция конвертирует число в строку с учётом системы счисления(от 2 до 36), там по ссылке показано, чтобы получить десятичное беззнаковое число(uint2str), нужно вызвать ConvertToBase с определёнными параметрами.

Так вот, есть такая же функция для 64-битных чисел.
Да даже для 128-битных smile

Но есть некоторые вариации кода.
Какие критерии для нас важны?
Я нахожу 3 варианта

  • высокая скорость работы, без учёта объёма кода

  • небольшой код, приемлемая скорость выполнения

  • минимальный код, без учёта скорости выполнения

В общем, я предлагаю добавить функцию ConvertToBase64.
А с помощью неё делать преобразования
32-битных, 64-битных, знаковых, беззнаковых, двоичных, десятичных, шестнадцатеричных(вообще от 2 до 36) чисел в строку.

Добавлено 2020-07-01 в 12:33

Насчёт StrToInt уже было в этой теме ранее
и тут ещё

0CodErr пишет:
Freeman пишет:

адаптировать StrToInt к ShortString

function StrToInt(const Str: ShortString): LongInt; overload;
begin
  Result := StrToInt(@Str[1]);
end;