Quel est le paramètre radix en Java et comment fonctionne-t-il?
Je comprends que radix pour la fonction Integer.parseInt()
est la base de convertir la chaîne de caractères. Ne devrait pas 11 de la base de 10 convertis avec un radix/base 16 être un B
au lieu de 17
?
Le code suivant imprime 17 selon le manuel:
public class Test {
public static void main(String[] args) {
System.out.println( Integer.parseInt("11", 16) );
}
}
source d'informationauteur Minh Tran
Vous devez vous connecter pour publier un commentaire.
Lorsque vous effectuez le
ParseInt
opération avec le radix, le 11 de base 16 est analysée comme 17, qui est une valeur simple. Il est ensuite imprimé en tant que base 10.Vous voulez:
Cela prend la valeur décimale 11(n'ayant pas de base pour le moment, comme les "onze" pastèques(un de plus que le nombre de doigts d'une personne a)) et l'imprime avec radix 16, résultant en
B
.Lorsque nous prenons une
int
valeur enregistrées en base 2, à l'intérieur de l'ordinateur de la mémoire physique (dans presque tous les cas), mais ce n'est pas pertinent puisque l'analyse et tostring conversions de travailler avec un arbitraire radix (10 par défaut).C'est en fait la prise de
11
en hexadécimal, et de le convertir en décimal. Ainsi, par exemple, si vous aviez le même code mais avec"A"
dans la chaîne, elle serait sortie de10
.Ici,
11 est 16 en fonction du nombre et devrait être converti à 10 je.e décimale.
La loi sur la fonction de rétro que vous le pensez. Vous convertir "11" en base 16 en base 10, de sorte que le résultat est de 17 ans.
Pour convertir à partir de la base 10 à la base 16 utilisation
Sortie sera b.