charArray

sinclair

Aktives Mitglied
hallo leute

kleine frage:
man stelle sich binär hat den Inhalt =1010
decimal = binär.charAt(i);
System.out.println(decimal);
ich gehe davon aus, das die erste ausgabe, welche geprintet wird, ist 1.
allerdings ist das nicht der fall.

ausgabe:
49
48
49
48
kann sich jemand das erklären, ich blick da nicht durch.
 
Zuletzt bearbeitet:
Wie Joose schon gesagt hat arbeitet java bei Zahlen oder Buchstaben mit ASCII Codes. Das bedeutet das Zahlen mit ihrem ASCII Code in einem Char dargestellt werden so ist z.B 1 eine 49, 2 eine 50 usw. Das selbe gilt auch bei Buchstaben: a ist 97, b ist 98 usw. Über den Link von Joose kannst du nachsehen welcher Decimalzahl dein Char entspricht.😀
 
Zuletzt bearbeitet:
sorry das ich erst jetzt antworte.
kann mir dann jemand erklären, wieso bei dieser ausgabe das richtige raus kommt?
decimal = binär.charAt(i) - '0';
das interessante ist das '0'.
bei dieser Schreibweise, kommt das richtige raus..
 
wegen genau der Begründung die Joose und Robinson97 bereits gegeben haben^^
In deinem Binärstring steht "101010"
charAt liefert also '1' bzw '0'. Dies sind aber Zeichen und keine Zahlen.
'0' hat den Wert 48
'1' hat den Wert 49
'2' hat den Wert 50
'3' hat den Wert 51
...
'A' hat den Wert 65
'B' hat den Wert 66
...

wenn dein charAt ein '1' liefert wird also effektiv '1' - '0' gerechnet, was eben 49-48=1 ist
'0' - '0' = 48-48=0
 
Zuletzt bearbeitet:
sorry, ich bin zu blöd um das zu verstehen..
mir ist das mit dem char langsam klar, wieso liefert aber mein char, wenn ich -'0' schreibe, am schluss das richtige?
 
ASCII

Schritt für Schritt:
binär="101010";
decimal = binär.charAt(i) - '0';

Wenn i nun 0 ist, dann liefert dir charAt(i) den character '1'.
Da das ZEICHEN '1' den WERT 49 hat und das Zeichen '0' den Wert 48. Wird also 49 - 48 gerechnet, was eben gleich 1 ist.

chars sind im Grunde nur Zahlen, deren Wertebereich von 0 bis 65535 geht (sind genaugenommen Unicode zeichen)
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben