Integer b = Integer.valueOf("444",8);
System.out.println(b);
为什么 b=292 我看不懂这个静态函数
什么时候
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:
当使用第二个参数给出的基数进行解析时,返回一个 Integer 对象,该对象包含从指定 String 中提取的值。第一个参数被解释为表示由第二个参数指定的基数中的有符号整数,就像将参数提供给 parseInt(java.lang.String, int) 方法一样。结果是一个表示字符串指定的整数值的 Integer 对象。
因为基数 8 中的 444 = 基数 10 中的 292 和基数 16 中的 444 = 基数 10 中的 1092。
“444”是字符串,16被称为基数,需要注意的一点是十进制是默认基数。
现在基数是本例中参数的当前基数,它的 16 即十六进制需要转换为默认值,即十进制,因此 444(十六进制)到十进制是 1092。