求打神解释一下这输出结果为啥是37777777777,就是o格式字符,以八进制形式输出整数,输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出是什么意思,如何应用?

img


include ()
int a=-1;
printf("%d,%o",a,a)

先转化为二进制1111 1111 1111 1111,然后二进制转八进制,从右边起,每三位一组,每组对应一个八进制数,
所以,32个1对应的八进制数就是37777777777