Informatik Studium Hausaufgabe?

3 Antworten

Die letzten zwei Funktionsaufrufe sind richtig, weil die Datentypen der übergebenen Parameter den Datentypen der Parameter der jeweilig aufgerufenen Funktionen entsprechen. Beim dritten Funktionsaufruf so, beim zweiten durch den cast.

DerErste ist falsch, weil das Ergebnis einer Multiplikation zweier short int ergibt, was mit dem Datentypen short des Parameters a nicht übereinstimmt.

Woher ich das weiß:Hobby

Z13: Die Multiplikation in Java von zwei short-Werten ist int, printShort erwartet aber ein short, das wäre eine einschränkende Konvertierung. Darum muss gecastet werden, da int zu short inkompatibel ist.

Z14: Das Ergebnis ist int (wie in Z13), aber wird gecastet.

Z15 geht problemlos, da das Ergebnis ein int ist, int zu long ist kompatibel

Nach rechts ist kompatibel, nach links muss gecastet werden:

byte short int long float double


KloseGlott  14.11.2023, 21:03

In allen Java Compilern oder auf welchen Compilter beziehst du dich?

0
NormaBlack  14.11.2023, 21:06
@KloseGlott

Ich verstehe die Frage nicht. Es gibt eine Sprachspezifikation, plattformübergreifend.

0
KloseGlott  14.11.2023, 21:08
@NormaBlack

Who cares über "spezifikationen". Ein Compiler Entwickler muss sich daran nicht halten und oftmals hält man sich aus Prinzip dann da nicht dran ^^

0
NormaBlack  14.11.2023, 21:10
@KloseGlott

Du kannst auch einen Compiler entwickeln, der Java rückwärts akzeptiert. Aber dann würde ich das nicht mehr Java nennen.

0
KloseGlott  14.11.2023, 21:12
@NormaBlack

Eben. Das kommt alles auf den Compiler an. Deswegen ist das so überhaupt gar nicht beantwortbar. Da sieht man sogar wie wenig Profs eigtl verstehen.

0
NormaBlack  14.11.2023, 21:17
@KloseGlott

Das ist ein genauso dämliches Argument, wie wenn du in der Deutscharbeit alles klein schreibst ohne Satzzeichen, weil deine Mutter das lesen kann und dich dann beschwerst, dass du ne 5 bekommst. Ist halt trotzdem falsch.

0
KloseGlott  15.11.2023, 00:32
@NormaBlack

Der Vergleich ist Blödsinn. Java wird kompiliert damit die Maschine es versteht. Deutsch nicht, dass muss direkt verständlich sein.

0

Kann man so überhaupt nicht sagen. Hängt vom Compiler ab ob der implizierte oder nur explizite Kovertierung kennt.


NorbertWillhelm  14.11.2023, 20:55

Ich dachte immer, dass C eine stark typisierte Sprache wäre.

0