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ß
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)
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
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ß
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
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
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden