Warum kann ich keine Bytes in Java addieren?

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.

PlayerPro 
Fragesteller
 26.10.2015, 23:03

Danke, es hat funktioniert :D

byte SumByte = (byte) (aByte + bByte + cByte + dByte + eByte + fByte + gByte + hByte);
1
RedKungFuMastr  27.10.2015, 00:37

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

0
PlayerPro 
Fragesteller
 26.10.2015, 21:47

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

0
RedKungFuMastr  26.10.2015, 21:54
@PlayerPro

Ok, kannst du mir dann verraten, welchen Wert jeweils die Variablen a bis h haben?

0
PlayerPro 
Fragesteller
 26.10.2015, 22:06
@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
PlayerPro 
Fragesteller
 26.10.2015, 22:38
@RedKungFuMastr

Bei: 

byte SumByte = aByte + bByte;

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

Die Fehlermeldung ist sinnlos, beide sind vom Typ byte

0