преобразование base36 в base10 | |
---|---|
lite Сообщений: 1 Дата регистрации: 30.07.2017 |
Привет всем.
Написал функцию преобразования строки с числом с основанием 36 в десятичную, работает нормально - до 10 символов включительно, а с 11-го символа некорректно. Понятно, что ошибка из-за разрядности. Можно ли обойти в VFP? Заранее спасибо, за любую помощь. Тестовый пример: ? base36('XODXX3YYBEY') 123130000002255900, а правильный результат 123130000002255946 FUNCTION base36 LPARAMETERS b36 LOCAL b10, base_sys, i, ex, k b10 = 0 base_sys = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' ex = 1 FOR i = LEN(b36) TO 1 STEP -1 k = AT( SUBSTR( b36,i,1 ), base_sys ) - 1 b10 = b10 + k * ex ex = ex * 36 ENDFOR RETURN b10 |
Re: преобразование base36 в base10 | |
---|---|
leonid Автор Сообщений: 3202 Откуда: Рига Дата регистрации: 03.02.2006 |
|
Re: преобразование base36 в base10 | |
---|---|
Atlant Сообщений: 204 Откуда: Новосибирск Дата регистрации: 01.09.2005 |
А в обратную сторону? ) 10 в 36? )
|
© 2000-2024 Fox Club  |