[英]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.