与下面的代码混淆了。
#include <stdio.h>
void main()
{
int a=0100;
printf("%x",a);
}
我得到的值是40。
有人可以解释一下这是怎么回事吗?
注意:当我在数字1之前删除数字0时,那么当100转换为十六进制时,它即将到来的64是正确的。
在C中,以a开头的常数0
是八进制常数。以8为底的0100是以2为底的1000000,以十六进制为40,以10为底,因此是64。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句