konvertierung/char/int

D

dzus

Gast
warum geht das:

Java:
int i = 5;
char c = 0;
c += i;

aber nicht das folgende..:

Java:
int i = 5;
char c = 0;
c = c + i;

Java:
int i = 5;
char c = i;
 

nrg

Top Contributor
beim ersten wird c direkt um 5 erhöht. beim zweiten wird c und i addierst und erst dann c zugewießen. der unterschied liegt daran, dass beim zweiten die addition einen int ergibt und dieser int nicht in den char passen könnte. d.h. man bräuchte hier einen expliziten cast. beispiel 3 ist das selbe: int ist größer als char und würde bei der zuweißung in einen char evtl. datenverlust bedeuten > expliziter cast erforderlich
 
D

dzus

Gast
Sry, vielleicht bin ich auch zu blöd, aber wo ist der unterschied jeweils in Zeile 3?
 

nrg

Top Contributor
hab ich doch grad gesagt. beim ersten wird c direkt um i erhöht. beim zweiten wird es erst addiert, das ergibt einen int und dann wird dieser int dem char zugewießen.
 
S

SlaterB

Gast
ein int passt nicht in einen char, höchstens per cast mit möglichen Verlust
bei += wird interessanterweise automatisch gecastet, bzw. je nach Interpretation eben 'c direkt um 5 erhöht'
 
D

dzus

Gast
Code:
+=
ist nur die Kurzschreibweise, und addiert/erhöht wird in beiden fällen. wo bitte ist der unterschied.
 
S

SlaterB

Gast
was immer du an 'anderen' meinst, kannst du das nicht selber ausprobieren?
für ein Beispiel nehme ich dir aber diese unendliche Mühe ab:
Java:
public class Test {

    public static void main(String[] args)  {
        int i = 5000;
        i /= 2.3;
        System.out.println(i);
    }
}
funktioniert anscheinend, Ausgabe 2173
 

Andi_CH

Top Contributor
Code:
+=
ist nur die Kurzschreibweise, und addiert/erhöht wird in beiden fällen. wo bitte ist der unterschied.

Das hatten wir glaub schon mal an anderer Stelle (war das in der Rätselecke?), dass das eben nicht in allen Fällen genau dasselbe ist.

Das Folgende
Java:
        char c = 'a';
        c += 1;
        c = c + 1;
meldet auf Zeile 3 einen Fehler. Das sind eben die ziemlich sinnbefreiten Effekte die entweder nirgendwo beschrieben sind oder deren Beschreibung so gut versteckt ist, dass man sie nicht findet.

(Würde mich ja sehr wundern wenn das so geplant gewesen wäre :bahnhof: )
 
D

dzus

Gast
Java:
        char c = 'a';
        c += 1;
        c = c + 1;

Man könnte es so verstehen:

Java:
        c = c + (char) 1;

oder so:

Java:
        c = (char) ((int) c + 1);

Was in diesem Fall keinen großen Unterschied machen würde. Dass es sinnfrei ist, da stimme ich dir zu. Ob es ungewollt ist, das weiß ich nicht. Weiß jemand, wo etwas dazu in der JLS Erwähnung findet oder welche Regel man sich merken könnte?

@SlaterB: Was ist daran so schwer zu verstehen, ob es in gleicher Weise auch für andere primitive Datentypen und Operatoren gilt. Verstehst du das Wort "andere" nicht? Dann kauf' dir mal 'ne Tüte deutsch.
 
D

dzus

Gast
ist doch wahr, so zu tun, alsob man blöd wär, nur weil man ne frage gestellt hat.... sag ich nichts mehr zu
 
M

Marco01_809

Gast
pff als Gast hätte ich mich das auch getraut :D
Der Unterschied sieht so aus:
Java:
int i = 5
char c = 0;
c = c + i;
Der Operator "+" für die Typen "char" und "int" gibt ein "int" zurück, das hier ist dasselbe:
Java:
int i = 5
char c = 0;
int cPlus = c + i
c = cPlus; // geht nicht, int passt nicht in char!
Denn char hat 16 bits (2 bytes), int 32 bits (4 bytes).
So hab ich das verstanden ;)

Java:
int i = 5
char c = 0;
c += i;
Das ist eine eigenart von Java, warum es hier einfach so geht, kann ich dir nicht sagen. Da wird wohl ein Programmierer einen automatischen Cast von X auf char eingebaut haben.
 
D

dzus

Gast
danke. das hieße, hier wird eine expliziter cast zum impliziten cast nach ende der arithmetische operation.

da + m.W. sowieso nur mit int funktioniert (bei ganzzahltypen <= int), wird vorher (generell implizit) char zu int und dann eben int zu char.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erste Schritte konvertierung von int zu char Java Basics - Anfänger-Themen 3
R Konvertierung int nach char, Ausgabefehler Java Basics - Anfänger-Themen 3
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
M Konvertierung String -> double Java Basics - Anfänger-Themen 8
B Date Konvertierung Java Basics - Anfänger-Themen 0
T Datentypen Calender/Gregorianisch/Julianisch/JDN Konvertierung Java Basics - Anfänger-Themen 4
W Konvertierung und Vergleich unterschiedlicher Zeitformate Java Basics - Anfänger-Themen 11
W Methoden Konvertierung von Sonderzeichen Java Basics - Anfänger-Themen 2
C Konvertierung per Hand ausrechnen Java Basics - Anfänger-Themen 8
S Konvertierung in Liste Java Basics - Anfänger-Themen 3
V Erste Schritte Konvertierung Java Basics - Anfänger-Themen 2
D Input/Output Stringbuffer Befehle bei Konvertierung in String Java Basics - Anfänger-Themen 19
T Problem mit Array Konvertierung Java Basics - Anfänger-Themen 13
D Konvertierung UnsignedInt zu long Java Basics - Anfänger-Themen 5
K Konvertierung von einem Text in eine Zahl in Excel(JXL) Java Basics - Anfänger-Themen 2
A Konvertierung String-->hex-->long Java Basics - Anfänger-Themen 7
D Methode zur Konvertierung von Oberklasse in Unterklasse Java Basics - Anfänger-Themen 5
H Konvertierung String -> int Java Basics - Anfänger-Themen 11
K Datentypen Explizite Konvertierung Java Basics - Anfänger-Themen 12
S Konvertierung von dez zu bin mit Bool-Array Java Basics - Anfänger-Themen 9
E Typ Konvertierung Java Basics - Anfänger-Themen 4
R datentypen konvertierung u modulorechnung Java Basics - Anfänger-Themen 15
I Unstimmigkeit bei String-nach-Double-Konvertierung Java Basics - Anfänger-Themen 7
G Konvertierung von charArray in String funzt net Java Basics - Anfänger-Themen 3
G Konvertierung String in long type Java Basics - Anfänger-Themen 15
I Konvertierung von double in int Java Basics - Anfänger-Themen 2
G Konvertierung Byte Array Java Basics - Anfänger-Themen 4
M Konvertierung v. Strings (evtl. mit Sonderzeichen) nach HTML Java Basics - Anfänger-Themen 8
G Probleme mit Konvertierung und Substraktion im Calendar Java Basics - Anfänger-Themen 4
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
D 2D Char Array into String Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
Tommilee Char ausgeben Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
P9cman Char Index rekursiv finden Java Basics - Anfänger-Themen 4
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
W char über die Konsole? Java Basics - Anfänger-Themen 7
C char c Java Basics - Anfänger-Themen 13
D String und char in String speichern Java Basics - Anfänger-Themen 5
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
A Datentyp char Java Basics - Anfänger-Themen 27
A Char und modulo Java Basics - Anfänger-Themen 8
A char array wird überschrieben Java Basics - Anfänger-Themen 6
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
D Datentypen Char deklaration Java Basics - Anfänger-Themen 4
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
I char Array to String Java Basics - Anfänger-Themen 3
C (char) Array einlesen Java Basics - Anfänger-Themen 8
J Java char.at() Probelm Java Basics - Anfänger-Themen 12
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
H char-Array Java Basics - Anfänger-Themen 22
M Die länge von char Java Basics - Anfänger-Themen 6
T Methoden char wird nicht ausgegeben Java Basics - Anfänger-Themen 3
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
C Methoden String in char Array Java Basics - Anfänger-Themen 3
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
kokojamboo92 char mehrfach ausgeben.. Java Basics - Anfänger-Themen 2
T Erste Schritte Char 'Anführungszeichen' Tastaturkürzel Java Basics - Anfänger-Themen 1
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
C Compiler-Fehler from int to char Java Basics - Anfänger-Themen 2
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
T Object zu Char zu String Java Basics - Anfänger-Themen 6
W Char Array bearbeiten Java Basics - Anfänger-Themen 6
A Char-Array erstellen Java Basics - Anfänger-Themen 35
D Hilfe bei int wert von char Java Basics - Anfänger-Themen 7
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
M Bestimmen, wie oft ein Char in einem Array vorkommt Java Basics - Anfänger-Themen 2
BuTTerBroTHDx Char Wert in int casten ? Java Basics - Anfänger-Themen 4
D Variablen Variable char vergleichen Java Basics - Anfänger-Themen 5
A Probleme beim Methodenaufruf von char[] ! Java Basics - Anfänger-Themen 10
C char array-positionstausch Java Basics - Anfänger-Themen 6
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
C String-zaehleZeichen(String str,char[]c) Java Basics - Anfänger-Themen 9
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
S For Schleife Char Array Java Basics - Anfänger-Themen 1
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
K PasswordField auslesen und in char speichern Java Basics - Anfänger-Themen 2
L Frage zum Zeichensatz Char Java Basics - Anfänger-Themen 2
L Frage zum Typ Char (Zeichensatz) Java Basics - Anfänger-Themen 8
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
P Char aus einem String auswählen Java Basics - Anfänger-Themen 4
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
B char Array mit ints Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben