被下面的一段代码弄糊涂了。
#include <stdio.h>
void main()
{
int a=0100;
printf("%x",a);
}
我得到的值是 40。
谁能给我解释一下这是怎么回事?
注意:当我删除数字 1 之前的数字 0 时,当 100 转换为十六进制时,它是正确的 64。
最佳答案
在 C 语言中,以 0
为前缀的常量是一个八进制 常量。基数 8 中的 0100 是
1000000 以 2 为基数,十六进制为 40,以 10 为基数为 64。因此您的程序正在打印它应该打印的内容。
关于c - 在 printf 语句中使用 %x 打印整数数据类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40449093/