15和015有什么区别?

时间:2013-02-22 04:55:05

标签: c++ char output

这可能看起来是一个愚蠢/琐碎的问题,但是当我这样做时:

char f_gear = 15;

我得到正常输出

"☼"

但是当我宣布它时,我用零填充它:

char f_gear = 015;

我得到奇怪的输出使文本看起来乱码(在一行中)并且空白前一行。当我试图看到个别角色时,我得到以下内容:

"  ◘◘@╧S☻ "

有什么本质上的不同?不是15 == 015?

== EDIT == 当我发布问题时,Stack Overflow更改了文本。我真正看到的输出是一些空白字符。

5 个答案:

答案 0 :(得分:11)

不,015指的是八进制数。因此,八进制中的015等于十进制的13。

所以,

char f_gear = 015;

相当于

char f_gear = 13;

答案 1 :(得分:7)

015是八进制表示法。你可以在这里阅读:http://en.wikipedia.org/wiki/Octal。它用得不多。

答案 2 :(得分:3)

以0开头的所有数字文字均为八进制。

答案 3 :(得分:1)

示例,如果我们写数字“15”。编译器将识别为:0000 1111,二进制。

如果我们写入数字015,编译器会将其识别为八进制,并将其视为二进制的0000 1101。

答案 4 :(得分:1)

char f_gear = 015被认为是八进制,因此它等效于char f_gear = 13。 ASCII 13用于回车,这是结果的原因。 下面的代码段显示值enter image description here