这可能看起来是一个愚蠢/琐碎的问题,但是当我这样做时:
char f_gear = 15;
我得到正常输出
"☼"
但是当我宣布它时,我用零填充它:
char f_gear = 015;
我得到奇怪的输出使文本看起来乱码(在一行中)并且空白前一行。当我试图看到个别角色时,我得到以下内容:
" ◘◘@╧S☻ "
有什么本质上的不同?不是15 == 015?
== EDIT == 当我发布问题时,Stack Overflow更改了文本。我真正看到的输出是一些空白字符。
答案 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用于回车,这是结果的原因。 下面的代码段显示值