public Gleitpunktzahl add(Gleitpunktzahl r) {

		/* 
		 * TODO: hier ist die Operation add zu implementieren. Verwenden Sie die
		 * Funktionen normalisiere, denormalisiere und die Funktionen add/sub
		 * der BitFeldklasse. Achten Sie auf Sonderfaelle und die Einschraenkung
		 * der Funktion BitFeld.sub.
		 */
		if (this.isNaN() || r.isNaN())
			return getNaN();
		if (this.isInfinite() || r.isInfinite())
			return getPosInfinite();
		Gleitpunktzahl a = new Gleitpunktzahl(this);
		Gleitpunktzahl b = new Gleitpunktzahl(r);
		Gleitpunktzahl result = new Gleitpunktzahl();
		
		if (a.vorzeichen && b.vorzeichen) {
			a.vorzeichen = false;
			b.vorzeichen = false;
			result = a.add(b);
			result.vorzeichen = true;
			return result;
		}
		else if (a.vorzeichen){
			a.vorzeichen = false;
			return b.sub(a);
		}
		else if (b.vorzeichen) {
			b.vorzeichen = false;
			return a.sub(b);
		}
		
		denormalisiere(a, b);
		result.exponent = a.exponent;
		result.mantisse = a.mantisse.add(b.mantisse);
		result.normalisiere(anzBitsMantisse-1);
		return result;
	}