Java中的基数参数是什么?它是如何工作的?

Java中的基数参数是什么?它是如何工作的?,java,wrapper,numeric,radix,Java,Wrapper,Numeric,Radix,我知道函数Integer.parseInt()的基数是将字符串转换为字符串的基础。用基数/基数16转换的11基数10不应该是aB而不是17 以下代码根据教科书打印17: public class Test { public static void main(String[] args) { System.out.println( Integer.parseInt("11", 16) ); } } 当您使用基数执行ParseInt操作时,以11为基数的16被解析为17,这是一个简

我知道函数
Integer.parseInt()
的基数是将字符串转换为字符串的基础。用基数/基数16转换的11基数10不应该是a
B
而不是
17

以下代码根据教科书打印17:

public class Test {
  public static void main(String[] args) {
    System.out.println( Integer.parseInt("11", 16) );
  }
}

当您使用基数执行
ParseInt
操作时,以11为基数的16被解析为17,这是一个简单的值。然后将其打印为基数10

你想要:

System.out.println(Integer.toString(11, 16));
这将采用十进制值11(目前没有基数,就像有“十一”个西瓜(比一个人的手指数多一个))并以基数16打印,结果是
B


当我们获取一个
int
值时,它被存储为计算机物理内存中的基数2(几乎在所有情况下),但这是无关的,因为解析和tostring转换使用任意基数(默认为10)。

它实际上是以十六进制获取
11
,并将其转换为十进制。因此,例如,如果您有相同的代码,但字符串中有
“A”
,它将输出
10

,函数将按照您的想法向后运行。将基数16中的“11”转换为基数10,结果为17。

此处

public class Test {
      public static void main(String[] args) {
      System.out.println(Integer.parseInt("11", 16));
    }
}
11是基于16的数字,应转换为10,即十进制

 So, integer of (11)16 = 1*16^1 +1*16^0 = 16+1 = 17

要从基数10转换为基数16,请使用

System.out.println(Integer.toString(11, 16));

输出将是b。

您基本上告诉我们解析11,就像它是基数16一样 所以如果你知道如何从十六进制转换成十进制 看起来像这样 十六进制中的11=(16^0)*1)+(16^1)*1)=十进制中的17

如果要从基准10转换为任何基准,请使用:

Integer.toString(11, 16); //HEXA
output: b
Integer.toString(11, 10); //decimal
output: 11
Integer.toString(11, 8);  //octal
output: 13
Integer.toString(11, 2);  //Binary
output: 1011

反过来说。您要求它在base-16中解释
“11”
。i、 e.1*16+1.谢谢你的邀请clarification@MinhTran请勾选对你帮助最大的答案。