Teil a: boolean x =true; boolean y = false; boolean z = true; boolean w = !(x || y) & z | (x && !y) ^ !z; (x || Y) : x oder y : true !(x || y) : nicht (x oder y) : false (x && !y) : x und nicht y : true !z : nicht z : false !(x || y) & z : 0 !(x || y) & z | (x && !y) : 1 !(x || y) & z | (x && !y) ^ !z : 1 Die Variable w hat den Wert true. Teil b: float f1 = 1000.0F float f2 = 0.00003F float f3 = f1 + f2 + f2 + f2 + f2 float f4 = f2 + f2 + f2 + f2 + f1 boolean b = f3 == f4 Der Wert ergibt ein false, da Fliesskommazahlen unterschiedlich gerundet werden, und f3 somit nicht gleich f4 ist. Besser: public class AufgabeDb { public static void main(String args[]) { float f1 = 1000.0F; float f2 = 0.00003F; float f3 = f1 + f2 + f2 + f2 + f2; float f4 = f2 + f2 + f2 + f2 + f1; System.out.println(f3); System.out.println(f4); System.out.println(Math.abs(f3 - f4) < 1.0E-3); } } // dieses gibt den zu erwartenden Wert true aus. // nachdem ich f3 und f4 ausgegeben habe und gesehen habe, dass sie sich // in der 4. Nachkommestelle unterschcheiden, habe ich 1.0E-3 gewählt. Teil c: byte a = 23; byte b = 42; byte c = a + b; Ein byte und ein byte Addiert ergeben ein int. Besser: public class AufgabeDb { public static void main(String args[]) { byte a = 23; byte b = 42; int c = a + b; System.out.println(c); } }