Veröffentlicht 10. Januar 200520 j 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ß
10. Januar 200520 j Schau mal bei www.manderby.com nach. Da müsste etwas über das Thema stehen. (informatik allgemein)
11. Januar 200520 j 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
11. Januar 200520 j 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ß
11. Januar 200520 j 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
12. Januar 200520 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.