gpt4 book ai didi

c - 如何获得 LONG_MAX 八进制值

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:55 27 4
gpt4 key购买 nike

我试图用这个递归函数打印出 LONG_MAX 的八进制值(包含在 limits.h 中):

void    ft_get_nbr_base(long int nb, char *base, int i)
{
int size_base;
int size_nb;
char *str;
size_base = ft_strlen(base);
if (nb >= size_base)
ft_get_nbr_base(nb / size_base, base, i);
if (i == 1)
ft_putchar(base[(long int)(nb % size_base)]);
if (i == 2)
ft_putchar(ft_toupper(base[(long int)(nb % size_base)]));
}

所以我这样调用它:ft_get_nbr_base(LONG_MAX, "01234567", 1);

结果是:77777777777777777777而当我执行 printf("%o", LONG_MAX) 时,我得到 37777777777。你能解释一下如何获得与 printf 相同的结果以及为什么它显示出这种差异吗?谢谢

最佳答案

尝试

fprintf(stdout, "%lo\n", LONG_MAX);

由于它是long int,您需要"l" 修饰符,编译器会对此发出警告,并且在任何printf() 中都非常清楚。手册。

关于c - 如何获得 LONG_MAX 八进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com