summaryrefslogtreecommitdiff
path: root/libft/ft_putu128x_fd.c
blob: 01989b47bb9efc1d4787b4aa0e5708cbc7ab9779 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   ft_putu128x_fd.c                                   :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: kdx    <kdx   @student.42angouleme.fr      +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2022/09/29 02:29:50 by kdx               #+#    #+#             */
/*   Updated: 2022/10/04 05:58:16 by kdx              ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#include "libft.h"

size_t	ft_putu128x_fd(t_u128 n, int fd, int capitalize)
{
	t_u128		div;
	size_t		rv;
	const char	*set;

	set = "0123456789abcdef";
	if (capitalize)
		set = "0123456789ABCDEF";
	rv = 0;
	div = 1;
	while (div <= n / 16)
		div *= 16;
	while (div > 0)
	{
		rv += ft_putchar_fd(set[n / div % 16], fd);
		div /= 16;
	}
	return (rv);
}