我很新到Java。我這樣做:
System.out.println(01111);
哪打印4680
。爲什麼它沒有打印出01111
?
在此先感謝。
我很新到Java。我這樣做:
System.out.println(01111);
哪打印4680
。爲什麼它沒有打印出01111
?
在此先感謝。
如果你想打印出字符串「01111」,然後把它放在引號中。這就是你如何在Java中指定一個字符串。
沒有十進制數01111,所以試圖打印出十進制數01111不可能工作。
你得到4680的原因是因爲在Java源代碼中,數字常量前面的前導零表示數字以八進制指定,數字以十進制打印出來。 11110八進制= 4680十進制。 (您必須完成01110
才能獲得4680,01111
會給您585.)
(好的答案......但你應該提到「literal」和「source code」這兩個詞,因爲在其他上下文中並沒有使用前導零表示法。) –
@StephenC:謝謝。完成。 –
因爲0前綴表示八進制整數(基數爲8)。所以,1111八進制是十進制的585。
它打印出585,而不是4680
Integer literals that start with 0
are octal numerals。因此,1111是585的八進制表示。
在0之前的整數表示它是octal number文字,所以您的編號爲1*8^3+1*8^2+1*8^1+1*8^0
。
這是試圖打印的號碼的octal表示形式。你應該得到的輸出是"585"
而不是"4680"
。
你可能是指'System.out.println(011110);'得到這個結果。 – Bruno