Warum kann ich keine Bytes in Java addieren?

...komplette Frage anzeigen

2 Antworten

Du musst es das Ergebnis explizit in byte casten. Java wandelt sicherheitshalber Ergebnisse in int um wenn zur Laufzeit der Wert nicht feststeht um eben keine Wertbereichsüberschreitung zu riskieren.

Danke, es hat funktioniert :D

byte SumByte = (byte) (aByte + bByte + cByte + dByte + eByte + fByte + gByte + hByte);
1

Begründung, beim addieren von  2 Byte variablen entsteht ein Integer Wert...

0

Wie gesagt, der Wertebereich von 128 wird nicht überschritten, das Ergebnis wäre 38 :/

0
@RedKungFuMastr

Ja, das Ganze schaut folgendermaßen aus:

int a = 0xe;
int b = 030;
long c = 18L;
double d = 4.44e1;
double e = 55.5;
double f = 66e-1f;
float g = 7.7f;
char h = 'F';
Mir ist schon klar, dass ich einen Überlauf haben werde wenn ich alles addiere, aber warum scheitert das schon bei 14 + 24?
0
@RedKungFuMastr

Bei: 

byte SumByte = aByte + bByte;

=> Incompatible types. Required: byte, found: int

Die Fehlermeldung ist sinnlos, beide sind vom Typ byte

0

Was möchtest Du wissen?