Binär subtrahieren

Neue Frage »

bandchef Auf diesen Beitrag antworten »
Binär subtrahieren
Hi Leute!

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?
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....
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?
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?
lgrizu Auf diesen Beitrag antworten »

also, komplemnent ist richtig, ich bekomme da auch 10000010 heraus, ich weiß nicht, was du falsch machst.....
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?
 
 
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....
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?
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. Augenzwinkern

vielleicht ist ja der ein oder andere hier, der dazu mehr sagen kann......
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?
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »