Hexadezimalzahlenberechnung

Hallo,
Ich habe eine Frage zu folgendem Bsp:

Java:
static void printHex(int n) {
        String digit = "0123456789ABCDEF";
        char[] a = new char[8];
        for (int i = 7; i >= 0; i--) {
            a[i] = digit.charAt(n%16); n = n / 16;
        }
        System.out.print("0x" + new String(a));

Meine Frage betrifft de Befehl charAt. Dieser sollte den Char-Wert an einer bestimmten Stelle wiedergeben, denke ich.
Nehmen wir an die Zahl ist 3000. 3000%16= 8. D.h. man schaut hier an der 8ten Stelle von digit?
Wäre die achte Stelle dann nicht das Zeichen 7 ?

Danke im Voraus für eure Antwort!

Mit freundlichen Grüßen
 
Vielen Dank.
Wäre es dann nicht so das hier in diesem Fall Rest 8 die Stelle 8 des digits, also 7 ist, wenn 0 als erster Wert zählt?
0-7 wären dann 8 Werte.
Oder ist es so, dass 0 hier nicht mitgezählt wird? Also, dass 0 als 0te Stelle, aber somit als Anfangsstelle zählt und man mit 1 weitermacht?
Dann wäre der Rest 8 auch bei der 8ten Stelle im digit und diese würde den Wert 8 ausgeben.
 

Robat

Top Contributor
Der String "012345678" hat 9 Zeichen. Die 8 steht also an neunter Stelle. Da die Indizes bei 0 anfangen steht die 8 an achter Stelle.
 

Neue Themen


Oben