алгоритм число в строку
Участников: 3
FreeBasic :: Программирование :: Общее
Страница 1 из 1
алгоритм число в строку
Привет!
Я тут конкретно тупанул.
Не один раз писал этот алгоритм, даже ещё в школе на qbasic, дело было.
А вот сейчас сижу и торможу.
В смысле, он у меня какой-то большой и медленный получаеться.
Задачка простая. Нужно преобразовать число N из типа long в строковый буфер zstring ptr, с основанием e.
Не пойму, толи я сейчас стал слишком заумным, толи раньше какие-то неправильные мысли у меня бродили.
Короче свой исходник (рабочий) не прилагаю, чтобы не смущать (моим извращенством).
Функции val() не предлагать - сам знаю, что есть такая и что проще.
Если есть ассемблерный код, то с тщательным разжовыванием (комментированием) - у меня у самого их 5 штук, мелкие, но заразы непонятные.
Число целое, со знаком!
К стандартному виду приводить не нужно!
И кстати, win api есть? Не считая конечно wsprintf()?
На msdn не смог найти IntToStr для windows xp.
Я тут конкретно тупанул.
Не один раз писал этот алгоритм, даже ещё в школе на qbasic, дело было.
А вот сейчас сижу и торможу.
В смысле, он у меня какой-то большой и медленный получаеться.
Задачка простая. Нужно преобразовать число N из типа long в строковый буфер zstring ptr, с основанием e.
Не пойму, толи я сейчас стал слишком заумным, толи раньше какие-то неправильные мысли у меня бродили.
Короче свой исходник (рабочий) не прилагаю, чтобы не смущать (моим извращенством).
Функции val() не предлагать - сам знаю, что есть такая и что проще.
Если есть ассемблерный код, то с тщательным разжовыванием (комментированием) - у меня у самого их 5 штук, мелкие, но заразы непонятные.
Число целое, со знаком!
К стандартному виду приводить не нужно!
И кстати, win api есть? Не считая конечно wsprintf()?
На msdn не смог найти IntToStr для windows xp.
Re: алгоритм число в строку
имхо только делить на 10 и брать от этого остаток, быстрее врятли получится, и асм тут врядли поможет, тк в десятичной системе счистения все делаеш
Re: алгоритм число в строку
Система счисления задаёться переменной e.
- Код:
function number_to_string( n as long, e as long ) as zstring ptr
dim buf as zstring ptr
buf = new zstring( 16 )
return buf
end function
Re: алгоритм число в строку
ну я думаю ето должно выглядеть примерно так
- Код:
function number_to_string( n as long, e as long ) as zstring ptr
const SIZE=16
const ASC_NUM_0=48
const ASC_SPACE=32
dim buf as zstring ptr, i as integer
buf=allocate(SIZE)
for i=SIZE-2 to 0 step -1
if n then
buf[i]=(n mod e)+ASC_NUM_0
n=int(n/e)
else
buf[i]=ASC_SPACE
end if
next i
buf[SIZE-1]=0
return buf
end function
print *number_to_string(127, 2)
print *number_to_string(12345, 10)
Re: алгоритм число в строку
погляди функции на msdn
i64toa
ui64toa
i64tow
ui64tow
itoa
itow
i64toa
ui64toa
i64tow
ui64tow
itoa
itow
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: алгоритм число в строку
Ребята, спасибо вам большое!
Tux очень интересная идея, причом сильно отличаеться от моей.
Но похоже что по результативности эффект похожий.
На msdn сейчас загляну.
Я то искал Int64ToStrA. Ну и по ключевым словам.
Tux очень интересная идея, причом сильно отличаеться от моей.
Но похоже что по результативности эффект похожий.
На msdn сейчас загляну.
Я то искал Int64ToStrA. Ну и по ключевым словам.
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|