猿问

从零开始的数字有什么特别之处?

这是一个愚蠢的问题,但对我来说很有趣)


这就是我通过Visual Studio 2013获得的东西


int i = 07;     // i == 7

int i = 16;     // i == 16

int i = 00016;  // i == 14, why?

int i = 05016;  // i == 2574, wow )

int i = 08;     // compile error, compiler expects octal number...

如果number以0开头并包含8,则为编译错误。这正常吗?如果00016 == 14,那么编译器到底从零开始到底做了什么?


谢谢大家 ))


交互式爱情
浏览 573回答 3
3回答

哆啦的时光机

以8开头的整数文字0是一个八进制数,就像以1开头的数字0x是十六进制数一样。八进制数只能包含数字0来7,这就是为什么你会得到一个编译错误。

慕村225694

开头的整数文字0是八进制文字。因此,它们只能包含数字0-7。(有趣的是,这包括文字0本身。)
随时随地看视频慕课网APP
我要回答