sort complexity codigo java wrapper numeric radix

complexity - ¿Cuál es el parámetro radix en Java y cómo funciona?



radix sort complexity (5)

Aquí,

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

11 es un número basado en 16 y se debe convertir a 10, es decir, decimal.

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

Entiendo que radix para la función Integer.parseInt() es la base para convertir la cadena en. ¿No debería 11 base 10 convertida con una base / base 16 ser una B lugar de 17 ?

El siguiente código imprime 17 según el libro de texto:

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


Cuando realiza la operación ParseInt con el radix, el 11 base 16 se analiza como 17, que es un valor simple. Luego se imprime como radix 10.

Usted quiere:

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

Esto toma el valor decimal 11 (no tiene una base en este momento, como tener "once" sandías (una más que el número de dedos que tiene una persona)) y lo imprime con la raíz 16, lo que da como resultado B

Cuando tomamos un valor int , se almacena como base 2 en la memoria física de la computadora (en casi todos los casos), pero esto es irrelevante, ya que las conversiones de análisis y cadena de secuencias funcionan con una base arbitraria (10 de forma predeterminada).


En realidad está tomando 11 en hexadecimal y convirtiéndolo a decimal. Entonces, por ejemplo, si tuvieras el mismo código pero con "A" en la cadena, daría como resultado 10 .


La función actúa hacia atrás como piensas. Convierte "11" en la base 16 a la base 10, por lo que el resultado es 17.


Para convertir de base 10 a base 16 use

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

La salida será b.