#include<stdio.h>
void main(){
int i;
i = 011;
printf("%d",i);
}
这个程序输出为9.我不知道原因。请帮我弄清楚这个程序给出这个输出的原因。
答案 0 :(得分:7)
在C中,您可以通过以下方式表示值9:
答案 1 :(得分:5)
在C / C ++ / Java中,十六进制数字以0x
开头。八进制数以0
开头。
011
是9
答案 2 :(得分:1)
011是八进制数,因为它前面有0
011 = 1*(8^1) + 1*(8^0)
= 1*8 + 1*1
= 8 +1
= 9 in decimal(%d)
十六进制为0x,十进制只有数字(即9)