我试图用这个递归函数打印出LONG_MAX的八进制值(包含在limits.h中):
Console.WriteLine(new Point(1, 1).ToString());
Console.WriteLine((object)new Point(1, 1));
所以我称之为:ft_get_nbr_base(LONG_MAX," 01234567",1);
结果是:777777777777777777777
当我做printf("%o",LONG_MAX)时,我得到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)]));
}
。你能解释一下我如何得到与printf相同的结果以及为什么它会显示出这种差异?感谢
答案 0 :(得分:3)