为什么整数在这里被转换成八进制

Why are integers converted to octal numbers here?

本文关键字:八进制 转换 整数 在这里 为什么      更新时间:2023-10-16

我无法理解下面提到的程序的输出-

#include <stdio.h>
int main()
{
   int i, a[8]={000, 001, 010, 011, 100, 101, 110, 111};
for(i=0;i<8;i++)
{
   printf("%dt",a[i]);             
}
system("pause");
return 0;

}


输出-

0 1 8 9 100 101 110 111

为什么在这里转换最初的四个值???

任何以0开头、后跟其他数字的整数文字都是八进制,就像任何以0x0X开头、后跟数字的整数字面值一样,都是十六进制。C++14将添加0b0B作为二进制整数字面值的前缀。

请在此处查看有关C++中整数文本的更多信息。

如果一个数字以0开头,它将转换为八进制

0xNumber是十六进制