Я использую C# язык для проекта. Мне нужно предоставить пользователю большой (9 + разрядный) номер, который им придется повторно ввести в другую систему (для последующей корреляции данных). Если пользователь вводит номер, который большой (вручную) без ошибок будет практически невозможным.алгоритм-сокращение +10 цифр строка
Я пытаюсь найти решение, чтобы сократить это число с помощью base64, но весь найденный мной код создаст строчную комбинацию символов и цифр. Есть ли простой математический алгоритм, который я могу использовать, чтобы сделать меньшее число меньшим? Результат должен быть числовым, а не буквенным.
Как вы можете кодировать [0-9] в [0-9] и делать это, используя меньшее количество позиций? Посмотрите на тире для группировки и добавьте номер контрольной суммы. – CodeCaster
Да, вы можете. Он называется uuencode/uudecode. Он используется в операционной системе unix для упаковки tar (zip). Поскольку ASCII - 8 бит, а цифра - 4 бита, вы можете упаковать цифры в 8 бит, чтобы получить меньше символов. uuenocode упаковывает символы только на печатные символы, поэтому символы управления ascii не используются, а символ выше 128 ... 255 не используется. Поскольку uuencode используется в стандартах электронной почты, он находится в библиотеке System.Web.Mail.MailEncoding.UUEncode – jdweng
@jdweng _ "Результат должен быть ** числовым ** не буквенным числом" _ – CodeCaster