#include<stdio.h>
int main()
{
int a=034;
printf("%d",a);
return 0;
}
如果我给出的值为 034,则输出为 28。
如果是 028,则会给出错误“八进制常量中的无效数字“8””。
In C
如果你以零开始一个整数(0
) 然后将其视为数字的八进制表示形式。在八进制表示中,只有 8 个有效数字。它们是 0、1、2、3、4、5、6 和 7。
所以你可以看到printf
在这里工作正常。034
is an octal
数,即28
以十进制表示。所以printf
正在打印 int 变量的正确值a
这是34
八进制,相当于28
以十进制表示。
但是,错误 - 使用时038
- 与以下内容无关printf
。当您尝试使用类似的数字时,您会收到错误038
因为,您使用的是八进制表示形式 - 通过以开头数字0
- 但您使用的数字无效,8
,这根本不存在于octal
号码系统。
P.S:如果您以以下方式开头一个数字0x
or 0X
然后将其视为数字的十六进制表示形式。
P.S:如果要以八进制格式打印整数,则格式说明符为%o
。例如:printf("num = %o \n", num);
P.S:如果要以十六进制格式打印整数,则格式说明符为%x
or %X
。例如:printf("num1 = %x, num2 = %X \n", num1, num2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)