Integer.valueOf()静态函数

时间:2015-08-17 13:24:24

标签: java integer value-of

 Integer b = Integer.valueOf("444",8);
 System.out.println(b);

为什么b = 292我无法理解这个静态函数

以及何时

 b=Integer.valueOf("444",16);
 System.out.println(b)

为什么b = 1092 我感谢您的帮助 提前致谢

4 个答案:

答案 0 :(得分:3)

像往常一样叹息,文档可供阅读。 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相同。 / p>

答案 1 :(得分:2)

您提供的基数为八进制和六进制,因此您可以根据提供的基数获得输出:

static Integer valueOf(String s, int radix)

根据java文档Integer.valueOf

  

返回一个Integer对象,其中包含从中提取的值   使用第二个给出的 radix解析时指定的String   参数 即可。第一个参数被解释为表示已签名   第二个参数指定的基数中的整数,就像是一样   参数被赋予parseInt(java.lang.String,int)   方法。结果是一个表示整数的Integer对象   字符串指定的值。

答案 2 :(得分:1)

因为基数8中的444 =基数10中的292和基数16中的444 =基数10中的1092.

答案 3 :(得分:0)

" 444"是字符串,16被称为基数,需要注意的是十进制是默认基数。

现在基数是参数的当前基数,在这种情况下它的16即十六进制需要转换为默认值,即十进制,所以 444(十六进制)到十进制是1092。