ich versuche gerade, eine Prüfsumme durch Addition der Binärzahlen zu berechnen (um nicht nur den Weg mit Umrechnung in dezimal zu können). beispiel auf EA 3 Kurs 20047 Aufgabe 3.7
Gegeben sind die Wörter
1) 11000111 = -56
2) 00111011 = 59
3) 10010101 = 106
4) 00111111 = 63
5) 11101111 = -16
6) 11000100 = -59
Hier meine Rechnung:
[U]Schritt 1[/U]: Ich rechne zunächste jeweils zwei Zahlen zusammen. ist umständlich, aber für mich übersichtlicher, anstatt 6 Zahlen mit Einmal zu addieren)
11000111 (1)
+ 00111011 (2)
------------------
= (1) 00000010 ==> Ergebnis 1
10010101 (3)
+ 00111111 (4)
--------------
= 11010100 ==> Ergebnis 2
11101111 (5)
+ 11000100 (6)
-----------------
= (1)00110011 ==> Ergebnis 3
Schritt 2: Dann addiere ich Ergebnis 1 zu Ergebnis 2 und diese Summe dann zu Ergebnis 3.
00000010 (Erg. 1)
+ 11010100 (Erg. 2)
-----------------------
= 11010110
+ 00110011 (Erg. 3)
-----------------------
= (1) 00011001
[U]Schritt 3[/U]: Übertrag dazu addieren
00011001
+ 111
--------------
= 00100000
Ich kommen somit nicht auf die Lösung -115, wie in der EA angegeben.
Hoffe, jemand hat einen Tipp, wo hier mein Rechenfehler liegt... oder eine andere Vorgehensweise? ´... außer Umrechnung in Dezimal :)
Grüße
Comments
Ottokarotto
Contributions on this page: 3
View profilegleich bei der ersten Addition hätte ich 00000011 raus, weil Du den Überlauf wieder addieren mußt.
falls ich falsch bin, bitte korrigieren.... falls nein - mit dem Wissen noch mal versuchen
Ottokarotto
Contributions on this page: 3
View profileund (5)+(6) gibt bei mir:
10110100 ( inkl. Überlauf ).... dann kommt man auch auf die gewünschten 10001100 ( irgendwann )
Susi-MX3
Contributions on this page: 3
View profileDanke, ist mir auch gerade aufgefallen. Ich muss bereits bei jedem Zwischenergebnis den jeweiligen Überlauf addiere, und nicht erst zum schluss
Moriarty
Contributions on this page: 2
View profileIrgendwie habe ich das damals im Skript schon nicht verstanden mit den Prüfsummen...und dann vernachlässigt - jetzt muss ich es mal nachholen...
Ich komme dezimal schon auf völlig andere Zahlen.
wie ich es auch drehe und wende, für mich ist 11000111= 199 u.s.w.
Kann mir jemand nochmal kurz auf die Sprünge helfen bzgl. Einerkomplement etc. ?
Gruß & Viel Erfolg an Alle...
Dennis
Ottokarotto
Contributions on this page: 3
View profiledie erste 1 vergessen, weil nur Vorzeichen , den Rest von 127 abziehen und * (-1)...
( 127 - 64 - 4 - 2 - 1 ) * (-1) = -56
Susi-MX3
Contributions on this page: 3
View profiledas erste Bit ist das Vorzeichenbit, wenn 1 => negativ, wenn 0 => positiv.
Beispiel 11000111
Beim 1er-Komplent rechne ich so: -127 + 64 + 4 + 2 + 1 = -56
Beim 2er-Komplement reche ich so: -128 + 64 + 4 + 2 + 1 = -57
Grund ist, wenn ich das richtig verstanden habe, die doppelte Null, d.h. es gibt eine positive 0 = 00000000 und eine negative 0 = 11111111
Grüße
Moriarty
Contributions on this page: 2
View profileHm, wenn ich das richtig verstehe, müsste dann nicht
10010101 = -106 sein?
Naja - mir brummt der Kopf - ich lerne schon seit den frühen Morgenstunden...
Ich glaube, ich mache erstmal Pause, schaue eine Folge Big Bang Theory, trinke 'nen Kaffee und dann geht's weiter
Cronkalonca
Contributions on this page: 1
View profileSchau dir die Binärzahl an und guck die erste Stelle an. Ist es eine 0, dann einfach in Dezimal umwandeln. ISt es eine 1, dann rechnest du erst das 1-er Komplement aus. Also Beispiel: 1100011. Vorne eine 1, also negativ. Dann wandel ich das einfach um, also suche das 1er-Komplement dazu: 0011100 -> Davon jetzt die Dezimalzahl -> 56. Da es eine negative Zahl ist, setz ich jetzt nur noch das - davor und fertig. 1100011 -> -56
Das mach ich mit allen Zahle und addiere die. Zum Schluss dann nur noch in Binärzahl umwandeln und fertig.