Показать сообщение отдельно
Старый 12.08.2009, 14:43   #27
Chrono Syndrome
 
Сообщений: n/a
Ответ: очень маленькие хинты

Одна из наиболее оптимизированных (по меркам Blitz3D) реализаций алгоритма преобразования целоисчисленного представления ранее записанного выровненным (символами нуля) текстом десятичного числа к исходному виду:

Function Val4(DWord%) ; Для четырехзначных чисел (ReadInt).
DWord = DWord - $30303030
Return (((DWord And $FF)*10+DWord Shl 16 Shr 24)*10+DWord Shl 8 Shr 24)*10+DWord Shr 24
End Function

Function Val2(Word%) ; Для двузначных чисел (ReadShort).
Return (Word And $FF - $30) * 10 + (Word - $3000) Shr 8
End Function
Обратите внимание: из соображений производительности в представленных функциях опущены какие-либо проверки корректности передаваемых данных.

Последний раз редактировалось Chrono Syndrome, 12.08.2009 в 14:59.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (12.08.2009)