Schriftl Subtr. Dualzahlen < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:20 Mi 24.10.2007 | Autor: | RalU |
Aufgabe | Hallo!
Ich soll die schriftliche Subtraktion von 2 Dualzahlen nach der Schulmethode (so wie im Dezimalsystem) durchführen.
Allerdings hab ich ein paar Fragen bezüglich des "borgens" von Ziffern beim subtrahieren nach dieser Methode.
Bsp1:
10101 -
00110
Bsp2:
110101001
- 10011
|
Zu Bsp1:
Ich rechne also schriftlich, indem ich die beiden Dualzahlen untereinander schreib und dann Ziffer für Ziffer von rechts nach links vorgehe.
Also 1- 0 = 1
Dann 0 - 1 geht nicht, also borge ich mir eine 1 von dem nächsten höherwertigen bit (eine stelle links daneben). Und rechne 10-1=1.
Dann steht da 1-1, allerdings hab ich ja noch ein Bit vom letzten Schritt gemerkt. Was passiert jetzt damit? rechne ich also jetzt da stat 1-1=0 10-1=1? (10 weil 1 ja da steht und ich noch 1 gemerkt hab und dazuaddiere)
Es stünde also jetzt da (von rechts nach links) 111 im Ergebnis.
Und jetzt hab ich mir wieder 1 gemerkt vom Schritt davor so dass ich jetzt 10-1 rechne, so dass im Endergebnis da steht 1111.
Also 10101 - 110 = 1111.
Kann es denn auch schonmal passieren, dass ich 11-1 in so einem Zwichenschritt zu rechnen habe? Wäre das Ergebnis dann 10? Beispielsweise, wenn ich mehrere Zahlen voneinander subtrahiere. Wie verhält es sich da bei dem "borgen" von bits?
zu Bsp.2:
ich gehe wieder von rechts nach links schrittweise (pro Ziffer) vor:
1-1=0
0-1 geht nicht, also wieder 1 borgen, so dass da steht 10-1=1
nächste ziffer dann eigentlich 0-0, allersings wurde vorher 1 gebort, so dass ich rechne 1- 1 = 0
nächste Stelle: 1- 0 = 1
nächste Stelle: 0-1 geht nicht -> 10 - 1= 1
nächste Stelle: 1-1 = 0
nächste Stelle: 0 - 0 = 0
nächste Stelle: 1-0=1
nächste Stelle: 1-0=1
Als Ergebnis für Bsp2 steht also da: 110011010
Aber das ist falsch (Ich hab die Gegenprobe mit der Addition durchgeführt)
Wo liegen meine Fehler?
Vielen Dank für Eure Hilfe!
Gruß, Ralf
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:39 Mi 24.10.2007 | Autor: | RalU |
Auch hier wieder nach dem gleichen Verfahren:
0-1 -> 10-1=1
1-11???? (wie verhält sich das nun mit dem vorher geborgenen Bit?)
Oder muss ich das nicht als 11 sondern als 1+1=10 sehen? Dann stünde nämlich da 1-10 -> nächstes Bit borgen, so dass da steht 11-10=1
dann weiter nächste Stelle:
0-1 -> 10-1=1
nächste stelle 1-1=0
nächste Stelle 1-1=0
also Gesamtergebnis: 111
Ist das so korrekt? Stimmen meine Überlegungen in den Teilschritten?
Vielen Dank für Eure Mühe
Gruß, Ralf
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:53 Fr 26.10.2007 | Autor: | leduart |
Hallo
> 11010 - 10011
>
> Auch hier wieder nach dem gleichen Verfahren:
>
> 0-1 -> 10-1=1
> 1-11???? (wie verhält sich das nun mit dem vorher
> geborgenen Bit?)
sicher falsch, wenn im Dezimalsystem da z.Bsp ne 9 stünde, würdest du ja auch nicht 91 draus machen, sondern 10!
> Oder muss ich das nicht als 11 sondern als 1+1=10 sehen?
> Dann stünde nämlich da 1-10 -> nächstes Bit borgen, so dass
> da steht 11-10=1
>
> dann weiter nächste Stelle:
> 0-1 -> 10-1=1
> nächste stelle 1-1=0
> nächste Stelle 1-1=0
>
> also Gesamtergebnis: 111
das ist richtig.
üb doch einfach mit einfachen Zahlen, die du inds dualsystem übersetzt z.Bsp 76 und 63 oder so.
Gruss leduart
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:47 Fr 26.10.2007 | Autor: | leduart |
Hallo
Deine erste Rechnung ist richtig.
Dein "borgen" versteh ich nicht ganz,
borgen kann man nur von der oberen Zahl, indem man die Stelle eins verkleinert, wenn da ne 0 steht geht das nicht, also muss man weiter nach links rücken usw.
> Bsp1:
>
> 10101 -
> 00110
>
>
> Bsp2:
> 110101001
> - 10011
>
> Zu Bsp1:
>
> Ich rechne also schriftlich, indem ich die beiden
> Dualzahlen untereinander schreib und dann Ziffer für
> Ziffer von rechts nach links vorgehe.
>
> Also 1- 0 = 1
> Dann 0 - 1 geht nicht, also borge ich mir eine 1 von dem
> nächsten höherwertigen bit (eine stelle links daneben). Und
> rechne 10-1=1.
> Dann steht da 1-1, allerdings hab ich ja noch ein Bit vom
> letzten Schritt gemerkt. Was passiert jetzt damit? rechne
> ich also jetzt da stat 1-1=0 10-1=1? (10 weil 1 ja da steht
> und ich noch 1 gemerkt hab und dazuaddiere)
>
> Es stünde also jetzt da (von rechts nach links) 111 im
> Ergebnis.
> Und jetzt hab ich mir wieder 1 gemerkt vom Schritt davor
> so dass ich jetzt 10-1 rechne, so dass im Endergebnis da
> steht 1111.
> Also 10101 - 110 = 1111.
>
> Kann es denn auch schonmal passieren, dass ich 11-1 in so
> einem Zwichenschritt zu rechnen habe? Wäre das Ergebnis
> dann 10? Beispielsweise, wenn ich mehrere Zahlen
> voneinander subtrahiere. Wie verhält es sich da bei dem
> "borgen" von bits?
>
>
> zu Bsp.2:
> ich gehe wieder von rechts nach links schrittweise (pro
> Ziffer) vor:
> 1-1=0
> 0-1 geht nicht, also wieder 1 borgen, so dass da steht
> 10-1=1
> nächste ziffer dann eigentlich 0-0, allersings wurde
> vorher 1 gebort, so dass ich rechne 1- 1 = 0
hier ist dein Fehler, du musst 0-1 rechnen!
damit ist da der Fehler! der sich natürlich fortsetzt.
> nächste Stelle: 1- 0 = 1
> nächste Stelle: 0-1 geht nicht -> 10 - 1= 1
> nächste Stelle: 1-1 = 0
> nächste Stelle: 0 - 0 = 0
> nächste Stelle: 1-0=1
> nächste Stelle: 1-0=1
>
> Als Ergebnis für Bsp2 steht also da: 110011010
>
> Aber das ist falsch (Ich hab die Gegenprobe mit der
> Addition durchgeführt)
>
> Wo liegen meine Fehler?
hoffe, du siehst es!
Gruss leduart
|
|
|
|