C语言中的o格式字符中,假设整型变量a的值为-1,则printf("%d,%o",a,a)中后面两个a是什么意思?

另外,这个语句的输出结果是-1,177777,不是想要输出八进制数-1吗,怎么会出现后面的177777呢?谢谢各位的回答,最好详细,浅显些。

十进制的-1转换成二进制是1111111111111111,
而这个二进制转换成八进制是177777(假如int是2字节的)
因为程序语言中八进制和十六进制一般是用来方便我们观察一个变量的二进制位的值的,我们并不会去关心它是正值还是负值,所以输出是一个很大的数了。

printf("%d,%o",a,a)这2个a都是输出参数,第一个是以十进制输出,第二个以八进制输出,a在计算机里面存储的值不变,只是给大家呈现的方式不同而已
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答