Ejemplo n.º 1
0
char	*ft_itoa(int nbr)
{
	int		sign;
	int		length;
	char	*result;
	int		i;

	length = 0;
	if ((sign = nbr) < 0)
		nbr = -nbr;
	while (ft_power(10, length) <= nbr)
		length++;
	result = (char*)malloc(sizeof(int) * length);
	result[0] = (nbr % 10) + 48;
	i = 1;
	while ((nbr /= 10) > 0)
	{
		result[i] = (nbr % 10) + 48;
		i++;
	}
	if (sign < 0)
		result[i++] = '-';
	result[i] = '\0';
	return (ft_strrev(result));
}
Ejemplo n.º 2
0
Archivo: ft_atod.c Proyecto: kube/zappy
double		ft_atod(char *str)
{
	double		tmp;
	double		val;
	int			i;
	int			flag;

	i = 0;
	val = (double)ft_atoi(str);
	flag = (str[0] == '-' ? -1 : 1);
	while (*str && *str != '.' && *str != ',')
		str++;
	if (!*str++)
		return (val);
	while (ft_isdigit(str[i]) && i < 9)
		(i)++;
	if (!i)
		return (val);
	while (--(i) >= 0 && str[i] == '0')
		;
	tmp = (double)ft_atoi_size(str, ++(i));
	if (tmp <= 0)
		return (val);
	tmp /= (double)ft_power(10, i);
	val = val + (tmp * flag);
	return (val);
}
Ejemplo n.º 3
0
void	bit_convert(char *buf, t_tetri *tetris)
{
	int tab[3];
	int	power;

	I = -1;
	J = -1;
	tetris->tetris = (t_tetris2*)malloc(sizeof(t_tetris2) * tetris->nb_tetris);
	while (buf[++I])
	{
		K = 0;
		ft_init_tab(TET[++J].tetris, 16);
		TET[J].carac = 'A' + J;
		while ((buf[I] != '\n' && buf[I + 1] != '\n') && buf[I--])
		{
			power = 0;
			while (buf[++I] != '\n')
			{
				if (buf[I] == '#')
					TET[J].tetris[K] += ft_power(2, power);
				power++;
			}
			K++;
			I++;
		}
		bit_reset(TET[J].tetris, 4);
	}
}
Ejemplo n.º 4
0
int		main(void)
{
	char	c;
	int		key;
	int		*grid;
	int		g_size;

	c = 0;
	if (ft_check_win_value(WIN_VALUE, 0) == 0)
	{
		ft_putendl("WIN_VALUE is not valid");
		return (1);
	}
	c = ft_menu(c);
	g_size = ft_grid_size(c);
	key = (c != 48 && c != 27) ? ft_key_use() : 0;
	if ((c != 48 && c != 27) && (key != 27 && key != 48))
	{
		grid = ft_nbrnew(ft_power(g_size, g_size));
		ft_starting_grid(g_size, grid);
		ft_window(g_size, grid, key, 0);
		free(grid);
		grid = NULL;
	}
	return (0);
}
Ejemplo n.º 5
0
void		ft_putnbr(int n)
{
	int	j;
	int	i;
	int	power;

	if (n == -2147483648)
	{
		ft_putstr("-2147483648");
		return ;
	}
	i = 0;
	j = 0;
	if (n < 0)
	{
		ft_putchar('-');
		i++;
		n = n * (-1);
	}
	while (j < ft_val(n))
	{
		power = ft_val(n) - j - 1;
		ft_putchar(48 + (n / (ft_power(10, power)) % 10));
		j++;
	}
}
Ejemplo n.º 6
0
int	ft_atoi_base(char *str, char *base)
{
	int i;
	int s;
	int nbr;
	int nbr_final;
	int size_base;

	i = 0;
	s = 1;
	nbr_final = 0;
	size_base = 0;
	if (ft_check_str(str, base) && ft_check_base(base))
	{
		while (((str[i] >= 9) && (str[i] <= 13)) || str[i] == 32)
			i++;
		if (str[i] == '-')
		{
			s = -1;
			i++;
		}
		else if (str[i] == '+')
			i++;
		nbr = get_nbr(str, base, i);
		while (base[size_base])
			size_base++;
		i = 0;
		nbr *= 10;
		while ((nbr /= 10) > 0)
			nbr_final += (nbr % 10) * ft_power(size_base, i++);
	}
	return (nbr_final * s);
}
Ejemplo n.º 7
0
Archivo: ft_itoa.c Proyecto: ItsJimi/42
char			*ft_itoa(int n)
{
	int		i;
	int		j;
	char	*tab;
	int		power;

	i = 0;
	j = 0;
	tab = (char*)malloc(sizeof(*tab) * (ft_val(n) + 1));
	if (!tab)
		return (NULL);
	if (n == -2147483648)
		return (ft_strcpy(tab, "-2147483648"));
	if (n < 0)
	{
		tab[0] = '-';
		i++;
		n = n * (-1);
	}
	while (j < ft_val(n))
	{
		power = ft_val(n) - (j++) - 1;
		tab[i++] = 48 + (n / (ft_power(10, power)) % 10);
	}
	tab[i] = '\0';
	return (tab);
}
Ejemplo n.º 8
0
int		ft_power(int number, int power)
{
	if (power == 0)
		return (1);
	else if (power < 0)
		return (0);
	return (number * ft_power(number, power - 1));
}
Ejemplo n.º 9
0
int		ft_power(int nb, int p)
{
	if (p < 0)
		return (0);
	if (p == 0)
		return (1);
	return (nb * ft_power(nb, p - 1));
}
Ejemplo n.º 10
0
int		ft_power(int nb, int power)
{
	if (power == 0)
		return (1);
	else if (power < 0)
		return (0);
	return (nb * ft_power(nb, power - 1));
}
Ejemplo n.º 11
0
static int	ft_power(int n)
{
	if (n == 0)
		return (1);
	if (n == 1)
		return (10);
	else
		return (10 * ft_power(n - 1));
}
Ejemplo n.º 12
0
int	ft_power(int n, int pow)
{
	if (pow <= 0)
		return (1);
	else if (pow == 1)
		return (n);
	else
		return (n * ft_power(n, pow - 1));
}
Ejemplo n.º 13
0
float			ft_cos(float angle)
{
	float		ret;
	int			n;

	angle = ft_check_angle(angle);
	angle *= 3.14159;
	angle /= 180;
	n = 0;
	ret = 1;
	while (++n < 5)
		ret += ft_power(-1, n) * ((ft_power(angle, n + n) / ft_fact(n + n)));
	if (ret > 1)
		return (EXIT_SUCCESS);
	if (ret < -1)
		return (EXIT_FAILURE);
	return (ret);
}
Ejemplo n.º 14
0
int		ft_power(int nb, int pow)
{
    if (pow < 0)
        return (0);
    if (pow == 0)
        return (1);
    if (pow >= 2)
        return (nb * ft_power(nb, pow - 1));
    else
        return (nb);
}
Ejemplo n.º 15
0
uintmax_t		ft_tobase10(char *n, int base)
{
	int i;
	int conv;
	int power;

	conv = 0;
	power = 0;
	i = ft_strlen(n);
	i--;
	while (i != -1)
	{
		if (base == 16
			&& ((n[i] >= 65 && n[i] <= 70) || (n[i] >= 97 && n[i] <= 102)))
			conv += (n[i--] - 55) * ft_power(base, power);
		else
			conv += (n[i--] - 48) * ft_power(base, power);
		power++;
	}
	return (conv);
}
Ejemplo n.º 16
0
static char		*do_itoa(char *str, int n, int len)
{
	char	*ps;
	int		dig;

	ps = str;
	if (n == 0)
		*str = '0';
	if (n < 0)
	{
		*ps++ = '-';
		len--;
		n = n * -1;
	}
	while (len-- > 0)
	{
		dig = n / ft_power(10, len);
		*ps++ = dig + 48;
		n = n % ft_power(10, len);
	}
	return (str);
}
Ejemplo n.º 17
0
int	ft_atoi(char *str)
{
	int i;
	int digits;
	int result;

	result = 0;
	i = -1;
	digits = count_digits(str);
	while (++i < digits)
		result += (str[i] - 48) * ft_power(10, digits - i - 1);
	return (result);
}
Ejemplo n.º 18
0
int	ft_power(int nb, int power)
{
	int	nb_pwr;

	nb_pwr = nb;
	if (power < 0)
		return (0);
	if (power == 0)
		return (1);
	if (power == 1)
		return (nb_pwr);
	nb_pwr = nb * ft_power(nb, power - 1);
	return (nb_pwr);
}
Ejemplo n.º 19
0
long double	ft_arrondi_double(long double nb, size_t dec)
{
	long double tmp;
	int			neg;
	uintmax_t	pow;
	intmax_t	tmp_int;

	pow = ft_power(dec, 10);
	tmp = (nb < 0) ? -nb * pow : nb * pow;
	neg = (nb < 0) ? -1 : 1;
	tmp_int = tmp;
	if (tmp - (intmax_t)tmp < 0.5)
		return ((long double)tmp_int * neg / pow);
	return ((long double)(tmp_int + 1) * neg / pow);
}
Ejemplo n.º 20
0
float		ft_atof(char *str)
{
	int		ent;
	double	dec;
	float	f;
	int		k;
	int		m;

	ent = 0;
	dec = 0;
	m = 0;
	ent = ft_atoi(str);
	k = (neg(str[0]) ? 0 : 1);
	k += (ent == 0 && neg(str[0]) ? 1 : 0);
	while (ft_isdigit(str[ft_strlen(ft_itoa(ent)) + k + 1 + m]))
		m++;
	if (str[ft_strlen(ft_itoa(ent)) + k] == '.')
		dec = ft_atoi(str + ft_strlen(ft_itoa(ent)) + k + 1);
	if (str[0] == '-')
		f = ent - (dec / ft_power(10, m));
	else
		f = ent + (dec / ft_power(10, m));
	return (f);
}
Ejemplo n.º 21
0
int			ft_nbrlen_base(long int nb, int base)
{
	int		len;
	char	sign;

	len = 0;
	sign = (nb < 0 ? 'n' : 'p');
	nb = (nb < 0 ? -nb : nb);
	while (nb / ft_power(base, len) != 0)
		(len)++;
	len = (nb == 0 ? 1 : len);
	if (sign == 'p')
		return (len);
	return (len + 1);
}
Ejemplo n.º 22
0
double	ft_atof(const char *str)
{
	double	res;
	double	res2;
	char	*c;

	c = (char *)str;
	res = (double)ft_atoi(c);
	while (*c != '.')
	{
		c++;
	}
	c++;
	res2 = (double)ft_atoi(c);
	return (res + res2 / ft_power(10, ft_strclen(' ', c) - 1));
}
Ejemplo n.º 23
0
int		octal_to_decimal(int n)
{
	int		decimal;
	int		rest;
	int		i;

	decimal = 0;
	i = 0;
	while (n != 0)
	{
		rest = n % 10;
		n /= 10;
		decimal += rest * ft_power(8, i);
		i++;
	}
	return (decimal);
}
Ejemplo n.º 24
0
int		ft_bintoi(char *str)
{
	int		i;
	int		number;
	int		len;

	number = 0;
	i = 0;
	len = ft_strlen(str);
	while (str[i])
	{
		if (str[i] == '1')
			number += ft_power(2, len - (i + 1));
		i++;
	}
	return (number);
}
Ejemplo n.º 25
0
static int		ft_calc(const char *str, int i, int base)
{
	int		n;
	int		pow;
	int		tmp;

	n = 0;
	i -= 1;
	pow = -1;
	while (ft_ishexa(str[++i]))
		;
	while (ft_ishexa(str[--i]))
	{
		if ((tmp = ft_base(str[i], base)) == -1)
			break ;
		n += (ft_power(base, ++pow)) * tmp;
	}
	return (n);
}
Ejemplo n.º 26
0
char	*ft_todecimal(char *number, int base)
{
	int i;
	int digit;
	int decimal;

	decimal = 0;
	i = 0;
	while (number[i + 1])
		i++;
	while (i >= 0)
	{
		digit = ft_chartoint(number[i]);
		decimal = decimal + (digit * ft_power(base, ft_strlen(number) - i - 1));
		i--;
	}
	number = ft_itoa(decimal);
	return (number);
}
Ejemplo n.º 27
0
int			ft_atoi_base(char *nb, int base)
{
	int		result;
	int		length;

	if (base == 10)
		return (ft_atoi(nb));
	while (*nb == ' ' || *nb == '\t' || *nb == '\n'
			|| *nb == '\v' || *nb == '\r' || *nb == '\f')
		nb++;
	result = 0;
	length = length_number(nb, base) - 1;
	while (*nb && length >= 0 && convert_and_check_nb(*nb, base) != -1)
	{
		result += convert_and_check_nb(*nb, base) * ft_power(base, length);
		nb++;
		length--;
	}
	return (result);
}
Ejemplo n.º 28
0
char	*ft_itoa_base(int value, int base)
{
	int		i;
	int		length;
	char	*str;
	long	sign;
	long	nb;

	if (value < 0 && base == 10)
	{
		sign = -1;
		nb =(long)-value;
	}
	else if (value < 0 && base != 10)
		return (NULL);
	else
	{
		sign = 1;
		nb = (long)value;
	}
	length = 1;
	while (ft_power(base, length) <= nb)
		length++;
	if (!(str = (char *)malloc(sizeof(char) * (length + 2))))
		return (NULL);
	i = 0;
	while (i < length)
	{
		if (base <= 10 || (base > 10 && (nb % base) < 10 ))
			str[i] = (nb % base) + 48;
		else
			str[i] = (nb % base) - 10 + 65;
		nb /= base;
		i++;
	}
	if (sign == -1)
		str[i++] = '-';
	str[i] = '\0';
	return (ft_strrev(str));
}
Ejemplo n.º 29
0
int	nu_len(int n, int base)
{
    int i;

    i = 0;
    if (base == 10)
    {
        if (n < 0)
            n = -n;
        while (n > 0)
        {
            n /= 10;
            i++;
        }
    }
    if (base ==  2)
    {
        while (n >= ft_power(2, i))
            i++;
    }
    return (i);
}
Ejemplo n.º 30
0
int			ft_atoi_base(const char *str, int base)
{
	int	signe;
	int	re;
	int	i;
	int	num;
	int	p;

	i = 0;
	p = ft_strlen(str) - 1;
	re = 0;
	signe = 1;
	ft_prep(str, &i, &signe);
	while (str[i] != '\0' && (num = ft_ishex(str[i])) != -1)
	{
		re = re + (ft_power(base, p) * num);
		i++;
		p--;
	}
	if (num == -1)
		return (-1);
	return (re * signe);
}