Integer b = Integer.valueOf("444",8);
System.out.println(b);
爲什麼B = 292我無法理解這樣的靜態函數Integer.valueOf()靜態函數
當
b=Integer.valueOf("444",16);
System.out.println(b)
爲什麼B = 1092 我感謝你的幫助 謝謝提前
Integer b = Integer.valueOf("444",8);
System.out.println(b);
爲什麼B = 292我無法理解這樣的靜態函數Integer.valueOf()靜態函數
當
b=Integer.valueOf("444",16);
System.out.println(b)
爲什麼B = 1092 我感謝你的幫助 謝謝提前
照例嘆息的文檔是有讀取它們。 http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#valueOf%28java.lang.String,%20int%29
返回一個Integer對象,該對象在用第二個參數給出的基數進行分析時,保存從指定String中提取的值。
這意味着,如果您將第16個參數作爲第二個參數傳遞,則該數字將被解釋爲十六進制數,因此:4 * 16^2 + 4 * 16 + 4 = 1092.八進制相同,僅限基數8.
您提供的基數爲八進制和六進制,因此您可以根據提供的基數獲取輸出:
static Integer valueOf(String s, int radix)
作爲每Java文檔Integer.valueOf:
返回整數對象時與由第二 參數給出的基數進行分析保持從 指定String中提取的值。第一個參數被解釋爲表示由第二個參數指定的基數中的帶符號的 整數,就好像 參數被賦予parseInt(java.lang.String,int) 方法。結果是一個Integer對象,它表示字符串指定的整數值 。
「444」是字符串,16被稱爲基數,有一點需要注意的是,十進制是默認的基數。
現在的基數是參數的在這種情況下它的16進制即本基地需要被轉換爲默認即十進制所以 444(十六進制)到十進制是1092
你檢查的'文檔valueOf(String data,int radix)'? – Pshemo
您是否閱讀過[文檔](http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html)?你明白什麼是基數? 444₈和444₁6之間有區別嗎? – RealSkeptic