6

起初这似乎是一个愚蠢/微不足道的问题,但是当我这样做时:

char f_gear = 15;

我得到正常的输出

"☼"

但是当我在声明它时用零填充它时:

char f_gear = 015;

我得到奇怪的输出使文本看起来乱码(在一行中)并使前一行空白。当我尝试查看单个角色本身时,我得到以下信息:

"  ◘◘@╧S☻ "

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

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

4

5 回答 5

11

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

所以,

char f_gear = 015;

相当于

char f_gear = 13;
于 2013-02-22T04:56:08.413 回答
7

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

于 2013-02-22T04:57:07.777 回答
3

所有以 0 开头的数字文字都是八进制的。

于 2013-02-22T04:59:00.870 回答
1

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

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

于 2013-02-22T05:00:32.080 回答
1

char f_gear=015 被认为是八进制,因此它等价于 char f_gear=13。ASCII 13 用于回车,这是结果的原因。下面的片段显示了值在此处输入图像描述

于 2013-02-22T05:10:17.600 回答