Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi!

Bin auf der Suche nach einer guten Erklärung wie man mit binären Zahlen subtraiert. Habe zwar manches gefunden, hat mir aber nicht weitergeholfen.

Speziell geht es darum, z.B. 35 -47 zu berechnen, da hier das Ergebnis eigentlich negativ sein müsste. Das mit dem 2er-Komplement habe ich bereits gelesen, aber ich komme trotzdem nicht auf einen grünen Zweig. Vielleicht kann mir das jemand hier erklären, oder kennt eine gute Seite wo das abgehandelt wird.

Gruß

Geschrieben

Ich versuchs hier einfach mal mit eigenen Worten:

Zunächst ermittle ich den Binärcode der Zahlen aus deinem Beispiel:

35 = 100011

47 = 101111

Dann bilde ich das Komplement der Zahl, von der abgezogen werden soll.

Ursprung: 100011

Komplement: 011100

Die beiden Zahlen (Komplement von 35 und 47) werden nun addiert.

011100

+101111

1001011 Der entstandene Umbruch wird nun gestrichen, das negativ-Flag gesetzt und 1 addiert.

001011

+000001

001100

beim zurückrechnen auf Dezimalwerte erhalten wir somit das Ergebnis -12.

Hoffe das ich helfen konnte

gruß Roland alias Mecky

Geschrieben

Hi Mecky!

Vielen Dank für Deine Mühe! Es hat mir schon sehr weitergeholfen. Das Prinzip habe ich jezt verstanden. Das Einzigste was ich mich noch frage ist das mit dem negativ-Flag. Wo wird das gesetzt, denn es ist bei dir nicht zu sehen?

Gruß

Geschrieben
Das Einzigste was ich mich noch frage ist das mit dem negativ-Flag.

Wo wird das gesetzt, denn es ist bei dir nicht zu sehen? Gruß

Hoi nordi80.

Im 2er Komplement werden negative Zahlen mit einer führenden 1 dargestellt.

Da wird aber kein "NegativFlag" explizit gesetzt; die führende 1 "ergibt" sich quasi durch das Durchführen der Addition der/des 2er Komplement(e/s).

Trick bei der Sache ist dass im Endeffekt Subtraktionen auf

die Addition des 2er Komplementes zurück geführt werden.

Echt guter Artikel zu dem Thema bei WikiPedia:

http://de.wikipedia.org/wiki/Zweierkomplement

Bye

SystemError

Geschrieben

ich kann mich nur auf Datentypen, die in der Programmierung eingesetzt werden beziehen.

Dort wird z.B. bei einem "signed Integer" der mit 16 bzw. 32 Bit dargestellt wird, das vorderste Bit(MSB) als Negativ-Flag verwendet.

Beispiel:

1000 0000 0000 0101(bin) entspricht -6(dez)

0000 0000 0000 0101(bin) entspricht 5(dez)

1000 0000 0000 0000(bin) entspricht bereits -1(dez)

Gruß Roland alias Mecky

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...