Esempio n. 1
0
char			*ft_itoa_base_ull(unsigned long long value, int base)
{
	char		*ans;
	int			p;

	if (base < 2 || 16 < base
			|| !(ans = (char *)malloc(sizeof(char) * 35)))
		return (NULL);
	p = 0;
	if (base == 10)
		aux_dix(value, ans, &p);
	else
		aux(value, (unsigned int)base, ans, &p);
	ans[p] = '\0';
	return (ans);
}
Esempio n. 2
0
char			*ft_itoa_base_ulongmax(size_t value, int base)
{
	char	*ans;
	int		p;

	if (base < 2 || 16 < base || !(ans = (char *)malloc(sizeof(char) * 35)))
		return (NULL);
	p = 0;
	if (base == 10 && value < 4294967296)
		aux_dix_int(value, ans, &p);
	else if (base == 10 && value > 4294967296)
		aux_dix((size_t)value, ans, &p);
	else
		aux((size_t)value, (unsigned int)base, ans, &p);
	ans[p] = '\0';
	return (ans);
}
Esempio n. 3
0
static void		aux_dix(unsigned long long n, char *ans, int *p)
{
	if (9 < n)
		aux_dix(n / 10, ans, p);
	ans[(*p)++] = n % 10;
}
Esempio n. 4
0
static void		aux_dix(size_t n, char *ans, int *p)
{
	if (9 < n)
		aux_dix(n / 10, ans, p);
	ans[(*p)++] = '0' + ABS(n % 10);
}