
Код AS3:
private static const _pattern:ByteArray = new ByteArray();
private static const _separator:int = 0x2E;
private static const _asciiZero:int = 0x30;
private static function format(digit:uint):String
{
var reminder:uint = digit;
var index:int = 12;
_pattern.length = 13;
while (index > -1)
{
reminder = digit;
digit = binaryDiv10(digit);
reminder -= (digit << 3) + (digit << 1);
if (((index + 1) & 2) == 2)
_pattern[index--] = _separator;
_pattern[index--] = _asciiZero + reminder;
}
return _pattern.toString();
}
private static function binaryDiv10(divident:uint):uint
{
var divisor:uint = 10;
var multiplier:uint = 1;
var quotient:uint;
var reminder:uint;
if (divident < 10) return 0;
while ((divisor <<= 1) < divident && multiplier < 28)
multiplier++;
divident -= (divisor >>>= 1);
quotient = 1 << (multiplier - 1);
multiplier = quotient;
while (divident)
{
while ((divisor >>>= 1) > divident) multiplier >>>= 1;
divident -= divisor;
quotient += (multiplier >>>= 1);
}
return quotient;
}
Вариант с удвоенным количеством извращений

Я чет не могу сообразить вот только, как параллельно с делением псчитать остаток %)