Binär subtrahieren |
12.10.2010, 15:31 | bandchef | Auf diesen Beitrag antworten » |
Binär subtrahieren Ich ab folgende Aufgabe: Ich soll die Aufgabe 253-123 binär lösen. Ich hab mittlerweile umgewandelt: 253=11111101 123=1111011 Ich ab dann von 123 das komplement gebildet und 1 addiert: 0000101 und dann mit 253 addiert: 11111101 + 00000101 = 100000010 Das Ergebnis stimmt aber leider nicht. Wenn ich 253-123 Dezimal berechne kommt 130 raus was umgerechnet aber 10000010 entspricht. Könnt ihr mir helfen? |
||
12.10.2010, 16:23 | lgrizu | Auf diesen Beitrag antworten » |
RE: Binär subtrahieren warum subtrahierst du nicht so, wie du es aus der schule gewöhnt bist? schriftliches subtrahieren: letzte stelle: 1-1=0 vorletzte stelle: 10-1=1, übertrag 1 usw.... |
||
12.10.2010, 16:24 | bandchef | Auf diesen Beitrag antworten » |
weil wir es mit dem komplement machen müssen... sorry, das hätte ich vielleicht dazu schreiben sollen... kannst du mir trotzdem helfen? |
||
12.10.2010, 16:29 | bandchef | Auf diesen Beitrag antworten » |
Ich hab jetzt mal den Windowsrechner bemüht; der spuckt mir bei der binären Subtraktion von 253-123 folgendes Ergebnis aus: 10000010 Wenn ich das gleiche mache nur eben mit Komplement mache komm ich aber auf: 100000010... Was mach ich falsch? |
||
12.10.2010, 16:40 | lgrizu | Auf diesen Beitrag antworten » |
also, komplemnent ist richtig, ich bekomme da auch 10000010 heraus, ich weiß nicht, was du falsch machst..... |
||
12.10.2010, 16:50 | bandchef | Auf diesen Beitrag antworten » |
Also bei mir sieht das so aus, wie unten im Bild. Irgendwie hast du aber trotzdem was anders was ich allerdings nicht verstehe... Kannst du mir nochmal helfen? |
||
Anzeige | ||
|
||
12.10.2010, 17:33 | lgrizu | Auf diesen Beitrag antworten » |
du machst den fehler, dass du den höchsten bit nicht "ignorierst", der höchste bit wird "gestrichen", also die führende 1 von 253. edit: mal nen einfaches beispiel: wir addieren mal +4+(-4) in 8-bit (heraus kommt 0): 00000100+11111100=100000000 nun haben wir aber eine zahl mit 9 bit länge, erst verwerfen der führenden eins führt zum richtigen ergebnis. verwerfen wir in 11111100 von vornherein die führende 1 so erhalten wir auch das richtige ergebnis.... |
||
12.10.2010, 18:08 | bandchef | Auf diesen Beitrag antworten » |
Danke dir! Jetzt hab ich's verstanden. Ich hab noch ein Problem: Ich soll die beiden Dezimalzahlen 8, 251 miteinander addieren. Ich hab sie umgewandelt: 8=00001000; 251=11111011 Weiter heißt es, dass diese Zahlen jeweils nur 8-Bit zur Verfügung haben. Mit 8-Bitt kann ich aber doch nur Zahlen -127 bis + 128 kodieren. Wenn man nur den pos. Raum nimmt, dann geht's von 0 bis 255. Wenn ich aber 8+251=259 rechne, dann bin ich über diesen 255 drüber hinaus was zur Folge hat, dass mir diese 8-Bit nicht mehr reichen und ich doch die Dualzahlen wie gefordert nicht miteinandern addieren kann, oder? |
||
12.10.2010, 19:15 | lgrizu | Auf diesen Beitrag antworten » |
sehe ich auch so.... ich glaube, programme arbeiten da dann mit einem overflow-bit, so dass soclhe rechenoperationen dennoch durchgeführt werden können. vielleicht ist ja der ein oder andere hier, der dazu mehr sagen kann...... |
||
12.10.2010, 19:25 | bandchef | Auf diesen Beitrag antworten » |
Ich kann mir aber schlecht vorstellen, dass es für dieses Problem keine mathematische Möglichkeit gibt, das Problem dennoch zu lösen... :-) Vielleicht weiß ja jemand doch etwas mehr als wir beide? |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |