What is the radix parameter in Java, and how does it work?

◇◆丶佛笑我妖孽 提交于 2019-11-27 01:35:19

When you perform the ParseInt operation with the radix, the 11 base 16 is parsed as 17, which is a simple value. It is then printed as radix 10.

You want:

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

This takes the decimal value 11(not having a base at the moment, like having "eleven" watermelons(one more than the number of fingers a person has)) and prints it with radix 16, resulting in B.

When we take an int value it's stored as base 2 within the computer's physical memory (in nearly all cases) but this is irrelevant since the parse and tostring conversions work with an arbitrary radix (10 by default).

It's actually taking 11 in hex and converting it to decimal. So for example if you had the same code but with "A" in the string, it would output 10.

Here,

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

11 is 16 based number and should be converted at 10 i.e decimal.

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

The function act backwards as you think. You convert "11" in base 16 to base 10, so the result is 17.

To convert from base 10 to base 16 use

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

Output will be b.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!