public void setDouble(double d) {

		/* Abfangen der Sonderfaelle */
		if (d == 0) {
			this.vorzeichen = false;
			this.mantisse.setBits(false);
			this.exponent.setBits(false);
			return;
		}
		if (Double.isInfinite(d)) {
			this.vorzeichen = (d < 0);
			this.mantisse.setBits(false);
			this.exponent.setInt(maxExponent);
			return;
		}
		if (Double.isNaN(d)) {
			this.vorzeichen = false;
			this.mantisse.setBits(true);
			this.exponent.setInt(maxExponent);
			return;
		}

		/* Falls d<0 -> Vorzeichen setzten, Vorzeichen von d wechseln */
		if (d < 0) {
			this.vorzeichen = true;
			d = -d;
		} else
			this.vorzeichen = false;

		/*
		 * Exponent exp von d zur Basis 2 finden d ist danach im Intervall [1,2)
		 */
		int exp = 0;
		while (d >= 2) {
			d = d / 2;
			exp++;
		}
		while (d < 1) {
			d = 2 * d;
			exp--;
		} /* d in [1,2) */

		/*
		 * Mantisse finden, analog zur binaeren Division Mantisse um 1
		 * vergroessern fuer evtl. Runden
		 */
		double rest = d;
		this.mantisse.erweitern(1);
		for (int i = anzBitsMantisse; i >= 0; i--) {
			if (rest >= 1) {
				rest = rest - 1;
				this.mantisse.bits[i] = true;
			} else
				this.mantisse.bits[i] = false;
			rest = 2 * rest;
		}

		/*
		 * normalisiere uebernimmt die Aufgaben des Rundens, das Setzten des
		 * Exponenten und Abfangen von Sonderfaellen. Deshalb setzten wir zuerst
		 * Exponent auf 0;
		 */
		this.exponent.setInt(expOffset);
		this.normalisiere(anzBitsMantisse - exp);
	}