2013-07-08 13 views
14

Ich verstehe, dass Radix für die Funktion Integer.parseInt() die Basis ist, um die Zeichenfolge in zu konvertieren. Sollte nicht 11 Base 10 mit einer Radix/Base 16 umgerechnet werden B statt 17?Was ist der Radix-Parameter in Java und wie funktioniert es?

Die folgenden Codedrucke 17 gemäß dem Lehrbuch:

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

Der umgekehrte Weg. Sie bitten es, "11" in Base-16 zu interpretieren. d. h. 1 * 16 + 1. –

+0

Danke für die Klarstellung –

+0

@MinhTran Bitte kreuzen Sie die Antwort an, die Ihnen am meisten geholfen hat. – hexafraction

Antwort

10

Wenn Sie den ParseInt Betrieb mit dem Radix zuführen, die 11 der Basis 16 ist als 17 geparst, was ein einfacher Wert ist. Es wird dann als radix 10.

gedruckt

Sie wollen:

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

Dies nimmt den Dezimalwert 11 (nicht eine Basis im Moment haben, wie „elf“ Wassermelonen mit (eine mehr als die Zahl der Finger hat eine Person)) und druckt es mit Radix 16, woraus sich B ergibt. Wenn wir einen int Wert nehmen, wird er als Basis 2 im physischen Speicher des Computers gespeichert (in fast allen Fällen), aber das ist irrelevant, da die Parsing- und Tostring-Konvertierungen mit einer beliebigen Radix (standardmäßig 10) arbeiten.

5

Es ist tatsächlich 11 in Hex und konvertiert es in Dezimal. Wenn Sie zum Beispiel den gleichen Code aber mit "A" in der Zeichenfolge hätten, würde er 10 ausgeben.

1

Die Funktion verhält sich rückwärts wie Sie denken. Sie konvertieren "11" in der Basis 16 bis 10 zu stützen, so das Ergebnis ist 17.

3

Hier

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

ist Basis Zahl und sollte bei 10 d.h dezimal umgewandelt werden.

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

Um von der Basis 10 konvertiert wird 16 Verwendung

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

Ausgang B werden zu stützen.