nordi80 Geschrieben 10. Januar 2005 Geschrieben 10. Januar 2005 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ß Zitieren
The Nightfly Geschrieben 10. Januar 2005 Geschrieben 10. Januar 2005 Schau mal bei www.manderby.com nach. Da müsste etwas über das Thema stehen. (informatik allgemein) Zitieren
mecky Geschrieben 11. Januar 2005 Geschrieben 11. Januar 2005 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 Zitieren
nordi80 Geschrieben 11. Januar 2005 Autor Geschrieben 11. Januar 2005 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ß Zitieren
SystemError Geschrieben 11. Januar 2005 Geschrieben 11. Januar 2005 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 Zitieren
mecky Geschrieben 12. Januar 2005 Geschrieben 12. Januar 2005 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 Zitieren
Empfohlene Beiträge
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.