簡體   English   中英

前導零如何更改Java中的數字文字?

[英]How does a leading zero change a numeric literal in Java?

我和我的朋友看到​​並回答了Java語句后就感到困惑。 這是如何運作的?

System.out.printf("%d", 077);

等於63?

077是一個八進制數 ,等於7 x 8 1 + 7 x 8 0 ,即63十進制。 要顯示八進制值,您可以執行

System.out.printf("%o", 077);

當您定義帶有0前綴的文字整數時,編譯器會將其視為整數基數8。(八進制)。

在此職位檢查http://rodrigosasaki.com/2013/06/10/number-literals-in-java/

因此,以八進制為基數的77值實際上是以十進制為基數的63。

077 = 7 * 8 ^ 0 + 7 * 8 ^ 1 = 63; 0123 = 3 * 8 ^ 0 + 2 * 8 ^ 1 +1 * 8 ^ 2 = 3 + 16 + 64 = 83; 前0表示八進制值。

0x77-十六進制值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM