C语言简单问题!初学者!

来源:百度知道 编辑:UC知道 时间:2024/05/06 09:32:05
#include <stdio.h>
void main()
{
int a=020, b=15, c=0x10;
printf("%d, %d, %d\n", a, b, c);
}
a=020,c=0x10是什么意思,输出结果是16,15,16请问怎么出来的。谢谢!
怎样把8进制和16进制转换为10进制。反过来又怎么换,详细点谢谢!

C语言中会有四种进位制,分别是二,八,十,十六。
二进制和十进制一般很好判断,八进制一般前面有一个0.十六进制前面一般是0x。所以题目中的a,b,c分别是八,十,十六进制的。然后printf语句里面又是用“%d”由十进制输出,那么将它们全部转化为十进制就可以了,所以答案是 16 ,15,16

020是八进制格式,所以是16
0x10是十六进制格式,所以是16

把一个数分别按8,10,16进制打印出来的格式分别是%o,%d,%x
比如printf("%o,%d,%x",16,16,16); 运行看看结果你就明白了