Java eclipse byte to int explizite Typumwandlung?

3 Antworten

Die Plus-Operation liefert ein int zurück.

Heißt du musst das Ergebnis der Addition zu einem byte casten, nicht die Zahlen die du addierst (die sind ja sowieso schon byte)

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

(Ich kenne mich mit Java nicht so sehr sicher aus.)

Aber es müsste (int)(k+j) heißen, denn es soll zuerst addiert werden und dann wieder auf byte heruntergecastet werden.

Nachtrag:

Es muss natürlich (byte)(k+j) heißen.

Danke an FaTech für den Hinweis.

FaTech  03.10.2022, 15:48

Achso, also wenn du (int) machst, wird es zum byte? So so 😅 Bitte einmal verbessern :)

1
tunik123  03.10.2022, 16:31
@FaTech

Danke für den Hinweis. Da habe ich ein bisschen ins Klo gegriffen. 😉

0

Du schreibst die Antwort schon selbst:

Der (type)-Operator hat Vorrang vor dem + Operator. Ist dies das Problem hier?
Das Type-cast wird zuerst ausfgeführt und schaut sich den Ausdruck k+j an. Dieser ist ein int.

Du konvertierst nur k zu byte (obwohl es das schon ist). Also änderst du nichts.

Wenn Byte + Byte int ergibt, ist es nicht umgewandelt, wenn du es an das byte z zuweist.

Also

byte z = (byte)(k+j)