Code:Beispiel: 1111 ---- 110 Der Nenner wird erst nach links geschoben, bis das obere Bit mit dem Zähler übereinstimmt: 1111 Q=0 ---- 1100 Der Nenner ist kleiner als der Zähler, passt also genau 1x rein und kann abgezogen werden. Aber wir ziehen nicht den Nenner ab, sondern 2^1 mal den Nenner, weil wir ihn einmal nach links geschoben haben. Diese 2 wird zum Quotenten Q dazugezählt, also Bit 1 von Q gesetzt 0011 Q=10 ---- 1100 Der Nenner kann jetzt nicht mehr reinpassen (wegen Zweiersystem) und wird 1 nach rechts geschoben 0011 Q=10 ---- 110 er passt nicht rein, Bit 0 von Q bleibt also 0 Bei einer Ganzzahldivision sind wir schon fertig. Der Quotient ist 2 und der Rest ist 3 (Zähler) Test: 15 = 2*6+3 Wenn wir aber weitermachen: 0011 Q=10 ---- 11 Passt der Nenner wieder rein. Wir sind jetzt bei Bit -1 von Q, also bei der ersten Nachkommastelle. Nenner abziehen und Bit -1 von Q setzen, bzw 2^(1/2) zu Q addieren: 0000 Q=10.1 ---- 11 Wir sind fertig, weil der Rest 0 ist: Q=2.5 Test: 15 = 2.5*6
Lesezeichen