C语言编程

#include <stdio.h>
void main()
{
int x=0177;
printf("x=%6d, x=%6o, x=%6x, x=%6u\n",x,x,x,x,);
}

结果为x= 127,x= 177,x= 7f,x= 127
为啥呢,望学长 老师们解答,谢谢。

以0开头的表示是8进制,所以x=0177,表示x=八进制的0177,化成十进制是127,化成十六进制是7f,printf中%d, x=%o, x=%x, x=%u分别表示以十进制、八进制、十六进制、十进制无符号的格式输出。
温馨提示:答案为网友推荐,仅供参考