Обаче тая стратегия е добра и за конвертиране към десетична стойност. Цената е едно деление което е трудно да се избегне. Дори на х64 умножението по 10 е възможно с последователност от 2 инструкции без умножение.
unsigned utos( char *s, unsigned val ) {
	uint64_t xval = ( val * 0x100000000ULL + 999999999 ) / 1000000000;
	unsigned i, j, x;
	
	for( j = i = 0; i < 10; i++ ) {
		s[j] = ( x = xval >> 32 ) + '0';
		
		if( x ) break;
		
		xval *= 10;
	}
	
	while( i++ < 9 ) {
		xval = (uint32_t)xval;
		xval *= 10;
		s[++j] = ( xval >> 32 ) + '0';
	}
	
	s[++j] = 0;
	
	return j;
}