В примере преобразование в 218ричную.
Const chars = "0123456789!#$%&()*+,-./:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—™š›œžŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîîïðñòóôõö÷øùúûüýþÿ"
- Код: Выделить всё
Debug.Print conversion(123456789, Len(chars))
Function conversion(dec As Long, system As Integer) As String
conversion = Mid$(chars, (dec Mod system) + 1, 1)
If dec \ system <> 0 Then conversion = conversion(dec \ system, system) & conversion
End Function
Практическое применение - с помощью этой функции бинарные данные можно упаковать для передачи через XML плотнее, чем в base64. Нужно только грамотно подобрать набор символов, чтобы парсер XML их зохавал и не подавился.
Кстати, из представленной строки нужно выкинуть амперсанд и xml не пикнет. Итого - в идеале степень компресии в три с лишним (217/64 = 3,39) раза выше, чем у base64.