C语言中,%o八进制输出,怎么算的,能说具体吗?

发布时间:2019-08-01 16:31:11

有道例题说
int a=-1;
printf("%d,%o",a,a);
结果是 -1,177777
还说了补码形式
1 111111111111111
大致只感觉他为了说明符号会被算尽八进制,但我看不懂怎么算的,谢谢啦
这个是什么?有点看不懂

推荐回答

%o为8进制输出,其实就是将后续参数的值,转换为8进制形式,然后进行输出。

计算的时候,实际上就是把10进制数转为8进制。

转换方法为除8取余法,具体如下:

1 整数部分除以8,记录余数;

2 判断商是否为0,如果为0,则执行3,否则继续执行1;

3 从最后一个余数向前排列,得到结果。

如图:

以上问题属网友观点,不代表本站立场,仅供参考!