public class Example {
public static void main(String args[]) {
int a = 0153;
int b=a;
System.out.println(""+b);
}
}
有人可以解釋爲什麼它打印107
而不是153
?整數分配在java
public class Example {
public static void main(String args[]) {
int a = 0153;
int b=a;
System.out.println(""+b);
}
}
有人可以解釋爲什麼它打印107
而不是153
?整數分配在java
107八路是0153
在Java可以簡單地通過添加一個前導零這樣創建八進制文字中:int a = 0755;小心!指定八進制文字很常見
因爲開始於0
的數字在Java中被視爲八進制值。 0153
八進制爲十進制的107
。
您寫爲八進制並打印默認爲十進制。
Input Prints (decimal)
Decimal 153 153
^
No leading zero (digits 0-9)
Octal 0153 107
^
leading zero (digits 0-7)
Hex 0x153 339
^^
leading 0x (digits 0-F)
因爲'0153'被認爲是一個八進制數。 – Lion 2012-04-10 19:44:15
@Lion是對的。請參閱Java規範的「整數文字」部分:http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.1 – NullUserException 2012-04-10 19:45:32