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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...