Hallo, ich habe mir gerade mal die Division von Binärzahlen auf Wikipedia angeschaut. Dort gibt es folgendes Beispiel: Leider verstehe ich das nicht so ganz. Kann mir das bitte einer verständlich erklären? 1000010 ÷ 11 = 010110 Rest 0 (= 22 im Dezimalsystem) − 011 ————— 00100 − 011 ———— 0011 − 011 ————— 000 − 00 ——— 0
Ist exakt das selbe Prinzip wie mit Dezimalzahlen, was man im 3. Schuljahr lernte. Sieht optisch genau so aus, und funktioniert auch genau so. Bis auf die Tatsache, daß man sich an das Zahlensystem gewöhnen muß.
Ja nur das man eben nicht so schnell sieht, welche Zahl man durch welche teilen kann. Da gab es auch irgendwelche Trick. Das ganze auf Subtraktion zurückzuführen. Und wenn das Ergebnis negativ war musste glaube ne 0 hin und dann musste korrigiert werden. ich wies eben nur nicht mehr, wie das ging.
Hier ist auch so nen Beispiel mit dem <0 >0. Aber ich weis nicht mal, was ich da von was subtrahieren muss.
Also das Beispiel von der Uni konnte ich nun nachvollziehen. Nur nach der Methode komme ich mit dem Beispiel aus Wiki nicht zurecht: 1000010 ÷ 11 = 0 -11 ——— 101 +011 ——— 1000
Es geht genau wie beim schriftlichen Dividieren. Mit dem Unterschied : Durch Zwei muss man nie teilen, nur subtrahieren oder auch nicht. Weshalb ? Wenn du das begreifst ...
Dividierer schrieb: > 1000010 ÷ 11 = 0 > -11 > ——— > 101 > +011 > ——— > 1000 So ungefähr verstehe ich das Prinzip ja jetzt. Nur weiß ich nicht, was ich in dem Beispiel falsch gemacht habe.
Entweder kannst Du abziehen oder nicht (weil der Rest <0 wäre) Wenn Du abziehen kannst, notierst Du eine 1 im Ergebniss, wenn nicht eine 0 Dann schiebst Du den Divisor nach rechts und wiederholst das Ganze. Vorher solltest Du den Divisor durch entsprechendes linksschieben auf ein Maximum bringen. Dies muss natürlich auch im Quotienten berücksichtigt werden. Beispiel: 120 / 10 = 12 01111000 / 00001010 = 1100 -> Divisor um 4 nach links (maximum / MSB = 1) 01111000 / 10100000 -10100000 -> 0 ======== 01111000 -> Divisor um 1 nach rechts 01111000 / 01010000 -01010000 -> 1 ======== 00101000 -> Divisor um 1 nach rechts 00101000 / 00101000 -00101000 -> 1 ======== 00000000 -> Divisor um 1 nach rechts 00000000 / 00010100 -00010100 -> 0 -> Divisor um 1 nach rechts (ursprünglicher Zustand erreicht) 00000000 / 00001010 -00001010 -> 0 Ergebnis: 01100 - kann noch vorne mit 0en aufgefüllt werden Gruß Jobst
Jobst M. schrieb: > Entweder kannst Du abziehen oder nicht (weil der Rest <0 wäre) > Wenn Du abziehen kannst, notierst Du eine 1 im Ergebniss, wenn nicht > eine 0 > Dann schiebst Du den Divisor nach rechts und wiederholst das Ganze. > Vorher solltest Du den Divisor durch entsprechendes linksschieben auf > ein Maximum bringen. Dies muss natürlich auch im Quotienten > berücksichtigt werden. Danke mit der Methode komme ich besser zurecht. Ich habe damit das Beispiel von Wiki durchrechnen können. Nur wie sehe ich da, ob ich einen Rest habe oder nicht? im Vorletzten Schritt: 0000110 -0000110 -------- 0000000 ->1 0000000 -0000011 ->0
Der Rest ist das, was nach der letzten Subtraktion über bleibt. Also das, was kleiner als der Divisor ist. Beispiel: 7 / 6 = 1 Rest 1 111 / 110 -110 -> 1 === 001 -> Rest Gruß Jobst
Gut danke. Wie sieht es dann mit Nachkommastellen aus? 101/11=01 101 -110 ---- 101 -011 ---- 010 <-- Da dürfte ja jetzt der Rest sein.
Wenn du einen Rest hast, gibt es natürlich auch Nachkommastellen. Da wird die Division dann einfach immer weiter fort geführt, in dem man an den Rest eine 0 anhängt und weiter teilt. Genau wie mit dezimalen Zahlen.
Dividierer schrieb:010110 Rest 0 (= 22 im Dezimalsystem)
1 | 1000010 ÷ 11 = |
Wie oft geht die 11 in die 10? Jo, Null mal. Null notieren, 0x11 drunterschreiben, abziehen, nächste Stelle herunternehmen.
1 | 1000010 ÷ 11 = 0 |
2 | − 0 |
3 | ————— |
4 | 100 |
Wie oft geht die 11 in die 11? Genau, einmal. Eins notieren, 1x11 drunterschreiben, abziehen, nächste Stelle runterholen.
1 | 1000010 ÷ 11 = 01 |
2 | − 0 |
3 | ————— |
4 | 100 |
5 | − 11 |
6 | —————— |
7 | 10 |
Wie oft geht die 11 in die 10? Siehe oben: Null notieren, abziehen, nächste Stelle.
1 | 1000010 ÷ 11 = 010 |
2 | − 0 |
3 | ————— |
4 | 100 |
5 | − 11 |
6 | —————— |
7 | 10 |
8 | − 0 |
9 | ————— |
10 | 100 |
Und? Siehe oben, einmal.
1 | 1000010 ÷ 11 = 0101 |
2 | − 0 |
3 | ————— |
4 | 100 |
5 | − 11 |
6 | —————— |
7 | 10 |
8 | − 0 |
9 | ————— |
10 | 100 |
11 | − 11 |
12 | —————— |
13 | 11 |
Nun? 11 geht einmal in die 11, also Eins notieren und weiter:
1 | 1000010 ÷ 11 = 01011 |
2 | − 0 |
3 | ————— |
4 | 100 |
5 | − 11 |
6 | —————— |
7 | 10 |
8 | − 0 |
9 | ————— |
10 | 100 |
11 | − 11 |
12 | —————— |
13 | 11 |
14 | − 11 |
15 | ————— |
16 | 00 <-- nicht aufhören, es kam noch ne Stelle runter! |
Und nochmal, nullmal gehts.
1 | 1000010 ÷ 11 = 010110 |
2 | − 0 |
3 | ————— |
4 | 100 |
5 | − 11 |
6 | —————— |
7 | 10 |
8 | − 0 |
9 | ————— |
10 | 100 |
11 | − 11 |
12 | —————— |
13 | 11 |
14 | − 11 |
15 | ————— |
16 | 00 <-- nicht aufhören, es kam noch ne Stelle runter! |
17 | − 0 |
18 | ————— |
19 | 0 <-- Jetzt ists wirklich der Rest 0 -> Stop. |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.