我正在实现printf函数,现在我坚持将负基数10转换为8八进制数,在下面我放置了一段代码,它可以很好地将一个正十进制数转换成八进制,就像printf一样。
my ft_printf => 15八进制=> 017原始打印本=> 15八进制=> 017
但关于负数:
my ft_printf => -15八进制=> 0-17原始打印本=> -15八进制=> 037777777761
我应该用我的函数修改什么,这样它才能打印负数,就像printf一样,谢谢!
void process_octal(unsigned int n)
{
char *str;
int oct = 0;
int rem = 0;
int place = 1;
while (n)
{
rem = n % 8;
oct = oct + rem * place;
n = n / 8;
place = place * 10;
}
str = ft_itoa(oct);
ft_putstr_fd(str, 1);
}https://stackoverflow.com/questions/73379873
复制相似问题