pf_len.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* ft_len.c :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: bchanot <bchanot@students.42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2016/03/09 14:17:06 by bchanot #+# #+# */
  9. /* Updated: 2017/04/15 00:40:01 by bchanot ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12. #include "libftprintf.h"
  13. int pf_hexlen(unsigned int n)
  14. {
  15. if (n >= 16)
  16. return (pf_hexlen(n / 16) + pf_hexlen(n % 16));
  17. else
  18. return (1);
  19. }
  20. int pf_octlen(unsigned int n, t_inf inf)
  21. {
  22. if (n == 0 && !inf.width && inf.prec <= 0)
  23. return (0);
  24. if (n >= 8)
  25. return (pf_octlen(n / 8, inf) + pf_hexlen(n % 8));
  26. else
  27. return (1);
  28. }
  29. int pf_hexulen(long long unsigned int n)
  30. {
  31. if (n >= 16)
  32. return (pf_hexulen(n / 16) + pf_hexulen(n % 16));
  33. else
  34. return (1);
  35. }
  36. int pf_octulen(long long unsigned int n, t_inf inf)
  37. {
  38. if (n == 0 && !inf.width && inf.prec <= 0)
  39. return (0);
  40. if (n >= 8)
  41. return (pf_octulen(n / 8, inf) + pf_hexulen(n % 8));
  42. else
  43. return (1);
  44. }