求解一个c语言问题,整傻了。

float a=0xf/016;
printf(“%f”,a);
输出结果为什么是1.000000

0xf中0x表示十六进制,f是15
016中0表示八进制,16是14
0xf和016都是int型,所以0xf/016=1,
转换为float型就是1.000000

0xf是16进制的15
016是8进制的14

img

img

0xf = 15; // 16进制
016 = 14; // 8进制