die-informatiker.net Logo   3612 registrierte Benutzer.
Insgesamt 118847 Beiträge.
Suche
• erweiterte Suche
Login
Benutzername:
Passwort:
• Registrieren

Ein Projekt des

1er und 2er Komplement

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.
Foren-Übersicht / Rechnerarchitektur (SS08)
Autor Nachricht
Stephan
Decorator
Decorator


Beiträge: 227

Private Nachricht senden
 

Beitrag Verfasst am: Mi 30.04.08, 1:02       Titel: 1er und 2er Komplement Nach oben

Servus,

Mal ne Frage zu diesem 1er und 2er Komplement, oder allgemein zur Darstellung ganzer Zahlen:

1.) Sign Magnitude: Also das höchstwertigste Bit ist repräsentiert das Vorzeichen. Z.b: bei der Zahl -5:

5 = 000101 und -5 = 100101.

2.) 1er-Komplement: Hier wirds irgendwie komisch. Also wenn wir ne negative Zahl in der 1erKomplement Darstellung darstellen wollen, dann invertierten wir einfach die Bits der Dezimalzahl 5.
Also wäre das 100101.
Positive Zahlen sind in der 1er-Komplement Darstellung einfach die normale Bitfolge, ohne zu invertieren?

3.) 2er-Komplement: Genau dasselbe wie bei 1er-Komplement, nur das man nach dem invertieren noch eine 1 dazuzählt.

Und jetzt die Sache mit dem Überlauf und Übertrag beim addieren bzw. beim anwenden des 2er - Komplements. Könnt mir da jemand erklären was da passiert?

Lg.

Antworten mit Zitat
Sarah Breining
Observer
Observer
Sarah Breining

Beiträge: 61

Private Nachricht senden
 

Beitrag Verfasst am: Mi 30.04.08, 1:49       Titel: Re: 1er und 2er Komplement Nach oben

So weit ich das verstanden habe:

Stephan hat Folgendes geschrieben:

1.) Sign Magnitude: Also das höchstwertigste Bit ist repräsentiert das Vorzeichen. Z.b: bei der Zahl -5:

5 = 000101 und -5 = 100101

Genau ;)

Stephan hat Folgendes geschrieben:

2.) 1er-Komplement: Hier wirds irgendwie komisch. Also wenn wir ne negative Zahl in der 1erKomplement Darstellung darstellen wollen, dann invertierten wir einfach die Bits der Dezimalzahl 5.
Also wäre das 100101

invertieren, ja
Also für -5 gehst du von der positiven Zahl 5 aus: 000101
und invertierst diese: 111010


Stephan hat Folgendes geschrieben:

Positive Zahlen sind in der 1er-Komplement Darstellung einfach die normale Bitfolge, ohne zu invertieren?

Genau, also hier 000101

Stephan hat Folgendes geschrieben:

3.) 2er-Komplement: Genau dasselbe wie bei 1er-Komplement, nur das man nach dem invertieren noch eine 1 dazuzählt.

Genau! Bei positiven Zahlen musst du also nichts machen
Bei negativen Zahlen eben +1
also z.B. bei -5: 111011

Stephan hat Folgendes geschrieben:

Und jetzt die Sache mit dem Überlauf und Übertrag beim addieren bzw. beim anwenden des 2er - Komplements. Könnt mir da jemand erklären was da passiert?

Hm der Überlauf tritt z.b. auf, wenn du zwei positive Zahlen addierst, das Ergbnis aber dann für den Zahlenbereich der zu Verfügung steht zu groß ist und deshalb nicht richtig interpretiert wird.
Stattdessen kommt dann eine negative Zahl raus.
Also. zb. dein Zahlenbereich geht von +10 bis -10
Jetzt addierst du 10+1, was ja 11 ist, du aber mit dem zahlenbereich nicht darstellen kannst.
Stattdessen wird das Ergebnis dann als -10 interepretiert
(glaub ich :D)
Hm.. hoffe das hast du mit der Frage überhaupt gemeint :)

Antworten mit Zitat
Heiko
Implementor
Implementor


Beiträge: 301

Private Nachricht senden
 

Beitrag Verfasst am: Mi 30.04.08, 7:52       Titel: Nach oben

also mein "Verständnis" von Überlauf und Übertrag so, wie ich es aus der Übung mitgenommen habe (man möge mich bitter verbessern, falls es Fehler gibt!):

wenn du zwei Zahlen addierst (was wir bei 2er-Komplementen immer tun) und es entsteht ein Übertrag, schaust du auf die führenden Bits der beiden Zahlen. Sind beide 1 (Addition negativer Zahlen) und das führende Bit (das erste Bit, nach dem Übertrag) deines Ergebnisses ebenfalls 1, ist alles in Ordnung. Ist das führende Bit allerdings 0, hast du einen Überlauf.
Mit 0 als führenden Bits der Summanden (Addition positiver Zahlen) funktioniert dies analog.

Erklärung: wenn beide Summanden negativ (führendes Bit 1) sind und du addierst sie, muss das Ergebnis folglich auch negativ sein. Hast du im Ergebnis nun als führendes Bit eine 0, so ist das Ergebnis positiv und es hat ein Überlauf stattgefunden.
Analog bei zwei positiven Zahlen: bei der Addition bleibt das Ergebnis positiv. Ist das führende Bit im Ergebnis eine 1, ist das Ergebnis negativ -> Überlauf

Bei unterschiedlichen führenden Bits der Summanden (Addition negativer und positiver Zahl) ist es in jedem fall nur ein Übertrag, da der Betrag der Summanden auf jeden Fall innerhalb des Wertebereichs liegen und der Betrag vom Ergebnis offensichtlich kleiner ist als der seiner Summanden.

Antworten mit Zitat
Franz Thoma
Observer
Observer


Beiträge: 32

Private Nachricht senden
 

Beitrag Verfasst am: Mi 30.04.08, 13:30       Titel: Nach oben

fürs zweierkomplement: Stell dir nen Kilometerzähler im Auto vor (älteres modell, also wo jede stelle ein rädchen ist, auf dem die ziffern von 0-9 stehen, und wenn das letzte rädchen eine umdrehung vollendet hat, rückt das vorletzte um eine stelle weiter.) sagen wir, er hat 3 stellen.

wenn du den rückwärts drehst, dann kommt nach der 0 die 999, also:

002
001
000
999
998
997
usw.

das ist das zweierkomplement.
offenbar entspricht 999 =-1, 998 = -2 usw.

durch einfaches stellenweises invertieren bekommt man aber für -1:

(001)inv = 998 (denn 0+9=9, 1+8=9)

das ist das einerkomplement. für das zweierkomplement muss man also noch 1 dazuzählen.

das zweierkomplement ist zum rechnen halt recht einfach: wir zählen einfach rückwärts, anstatt vorwärts mit anderem vorzeichen. außerdem gilt "minus mal minus gibt plus": K2(K2(A)) = A.

das einzige problem ist, dass ich eben nicht unterscheiden kann, ob die zahl groß oder negativ ist, weil 999 (auf dem kilometerzähler) kann eben 999 sein oder -1; und 005 könnte genausogut 1005 oder 5 sein!

das zweierkomplement ist also eine ziemlich natürlich Art für die Darstellung der negativen Zahlen, und ist vor allem von Rechenwerken sehr leicht zu verarbeiten. Das Einerkomplement wird vor allem gebraucht, weil man vom K1 leicht auf das K2 kommt (einfach 1 addieren), und weil das invertieren für rechenwerke (denke ich) einfacher zu realisieren ist.

Edit: meine Beispiele waren jetzt im dezimalsystem, daher müsste ich neuner- und zehnerkomplement sagen. einer- und zweierkomplement funktionieren eben analog im dualsystem.

Antworten mit Zitat
Heiko
Implementor
Implementor


Beiträge: 301

Private Nachricht senden
 

Beitrag Verfasst am: Do 08.05.08, 0:53       Titel: Nach oben

mh nun hätt ich doch noch ein Anliegen zu dem Thema. Könnte mir vllt jmd die Ergebnisse zu Aufgabe 10 auf Blatt 2 geben? Da hab ich nämlich noch reichlich Fehler eingebaut habs anscheinend doch noch nicht so ganz mit den reellen Zahlen im 2er-Komplement raus ...

Antworten mit Zitat
Stephan
Decorator
Decorator


Beiträge: 227

Private Nachricht senden
 

Beitrag Verfasst am: Sa 10.05.08, 15:53       Titel: Nach oben

Hallo und danke für die Antworten.

Ich häng jetzt allerdings schon länger an der Addition.

Also nehmen wir mal an wir wollen -9 zu 4 addieren.

9 = 001001
Dann kippen
110110
Eine 1 dazuzählen
110111


Da 4 positiv ist, wird im 2er Komplement nichts verändert, also:
000100

Jetzt zum addieren:

 
  110111
+000100
_______
   111011

Also das Ergebnis ist ja so zu interpretieren denke ich mal.

Das höchstwertige Bit gibt an, dass das Ergebniss negativ ist.
Vom Rest ziehe ich eine 1 ab und kippe es um auf die "normale" Darstellung zu kommen mit der ich in Dezimal umrechnen kann.

Also:

11011 -1 = 11010, dann kippen:

00101.

Das wäre dann 5. Und die höchstwertige 1 noch betrachten, also -5. Passt!

Jetzt zur Aufgabe 8d:

  1111101011
  0001011010
___________
10001000101

Also 1111101011 ist -21.
Und 0001011010 ist 90. Ergebniss sollte also 69 sein.

Ich habe eine negative Zahl zu einer positiven addiert, also ist es unmöglich das man aus dem Zahlenbereich rausgefallen ist, also muss das höchstwertigste Bit ein Übertrag sein.

Wie interpretiere ich dieses Ergebniss nun, so dass 69 rauskommt?
Und warum hat die Addition in dem obigen kleinen Beispiel so problemlos geklappt, so dass man das ERgebniss einfach ablesen konnte?

Antworten mit Zitat
Bastian Gebhardt
Admin.em.
Admin.em.
Bastian Gebhardt

Beiträge: 1143

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Sa 10.05.08, 16:35       Titel: Nach oben
Stephan hat Folgendes geschrieben:

  1111101011
  0001011010
___________
10001000101

Wie interpretiere ich dieses Ergebniss nun, so dass 69 rauskommt?
Und warum hat die Addition in dem obigen kleinen Beispiel so problemlos geklappt, so dass man das ERgebniss einfach ablesen konnte?

Übertrag weg und fertig. 01000101 müsste nämlich LaTeX sein.

_________________

When I see a bird that walks and swims like a duck, I call that bird a duck. And if Chuck Norris says it's a cow, THEN IT'S A COW GODDAMMIT!
alles über den IRC-Channel (mit Webclient)

Antworten mit Zitat
s@sh
Implementor
Implementor


Beiträge: 331

Private Nachricht senden
 

Beitrag Verfasst am: Mo 12.05.08, 21:23       Titel: Nach oben

Vielleicht hilft dem ein oder anderen noch die Folie von der TU Chemnitz.
(Wenn das eher verwirrt, lieber nicht anschauen :-)) )

Antworten mit Zitat
Stephan
Decorator
Decorator


Beiträge: 227

Private Nachricht senden
 

Beitrag Verfasst am: Di 13.05.08, 1:16       Titel: Nach oben
Bastian Gebhardt hat Folgendes geschrieben:
Stephan hat Folgendes geschrieben:

  1111101011
  0001011010
___________
10001000101

Wie interpretiere ich dieses Ergebniss nun, so dass 69 rauskommt?
Und warum hat die Addition in dem obigen kleinen Beispiel so problemlos geklappt, so dass man das ERgebniss einfach ablesen konnte?


Übertrag weg und fertig. 01000101 müsste nämlich LaTeX sein.

ja saudumm... hab das ergebniss falsch abgeschrieben ;)

Ich glaub ich habs jetzt grösstenteils verstanden, zumindest krieg ich die Aufgaben auf dem Blatt problemlos hin.

Jetzt noch eine Sache zu Übertrag / Überlauf:

Also der Übertrag tritt auf wenn alles klappt und kann einfach weggeschnitten werden, wenn er auftritt.

Der Überlauft kann auftreten wenn man zwei Zahlen mit demselben Vorzeichen addiert, da dabei der gültige Zahlenbereich verlassen werden kann.

Wie erkennt man jetzt nochmal ob es ein Überlauf oder ein Übertrag ist (ohne die Berechnung in Dezimal zu testen)? Nur das die beiden Summanden dasselbe Vorzeichen haben ist ja nicht ausreichend.

Antworten mit Zitat
Bastian Gebhardt
Admin.em.
Admin.em.
Bastian Gebhardt

Beiträge: 1143

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Di 13.05.08, 1:42       Titel: Nach oben

Also einen Überlauf erkennt man immer daran, dass man zwei Zahlen mit gleichem Vorzeichen addiert, das Ergebnis aber ein anderes Vorzeichen hat.

(abstraktes) Beispiel:
Addition zweier negativer Zahlen. Ergebnis ist positiv.
Addition zweier positiver Zahlen. Ergebnis ist negativ.

Das sind so die zwei Beispiele die mir einfallen. :)

Zum Übertrag fällt mir noch ein:
Du addierst zwei Zahlen mit LaTeX Bits. Das Ergebnis hat LaTeX Bits. Kann nich sein. Gar nich. Muss Übertrag sein. Is aber nich böse, einfach weglassen. :)

P.S.: Ich will jetzt im postscript nich verwirren, aber ob Übertrag und Überlauf gleichzeitig auftreten kann, kann ich grad nicht sagen. Ich glaube ohne zu rechnen aber das geht nicht. Kommentare bitte. :)

_________________

When I see a bird that walks and swims like a duck, I call that bird a duck. And if Chuck Norris says it's a cow, THEN IT'S A COW GODDAMMIT!
alles über den IRC-Channel (mit Webclient)

Antworten mit Zitat
Heiko
Implementor
Implementor


Beiträge: 301

Private Nachricht senden
 

Beitrag Verfasst am: Di 13.05.08, 8:59       Titel: Nach oben

Also nach meinem Befinden ist ein Überlauf auch ein Übertrag, aber ein Übertrag noch lange kein Überlauf ;-)

Der Übertrag ist der ganz banale Fall, dass du im Ergebnis "ein Bit zuviel" hast. Das ist normalerweise kein Problem und kann einfach abgeschnitten werden.
Zum Überlauf wird das ganze dann erst, wenn (wie schon beschrieben) sich die führenden Bits von Summanden und Ergebnis unterscheiden.

Antworten mit Zitat
Daniel Fritsch
Moderator
Moderator
Daniel Fritsch

Beiträge: 184

Private Nachricht senden
 

Beitrag Verfasst am: Sa 12.07.08, 14:04       Titel: Nach oben

nach so langer Zeit bleibt immer noch die frage offen, wie sich das bei 2er Komplement und Festkommazahlen verhält:
Als bsp:
die Zahl 100,110
Da sie mit einer 1 anfängt ist sie negativ, und zwar
-(011,001 + 1) (bin mir eigentlich schon hier nicht so sicher, könnte ja auch 011,110 sein, weil es eigentlich keinen Sinn macht, auch die Nachkommastellen zu kippen.)
ist dann aber 011,001 + 1 = 100,001 oder 011,010 ,
bzw 011,110 + 1 = 100,110 oder 011, 111?

EDIT: eine kurze recherche im Internet hat ergeben, dass
100,110 = - (011,001 + 1) = - 011,010 ist, also -3,25.
Kann dass jemand bestätigen?

Antworten mit Zitat
Dana Thalmayer
Visitor
Visitor


Beiträge: 14

Private Nachricht senden
 

Beitrag Verfasst am: So 13.07.08, 11:09       Titel: Nach oben

EDIT: eine kurze recherche im Internet hat ergeben, dass
100,110 = - (011,001 + 1) = - 011,010 ist, also -3,25.
Kann dass jemand bestätigen?[/quote]


ja es ist richtig!

Antworten mit Zitat
Dana Thalmayer
Visitor
Visitor


Beiträge: 14

Private Nachricht senden
 

Beitrag Verfasst am: So 13.07.08, 12:13       Titel: Nach oben

Aufgabe10
a)
001,000=1
100,110=-3,25
inv. , +1 , -!
100,110>>011,001>>011,010=3,25>>-3,25
101,100=-2,5
inv. , +1 , -!
101,100>>010,011>>010,100=2,5>>-2,5
100,110=-3,25
wie ii)
b)
0001,0+000,1=0010,1 //1+1,5=2,5
1001,0+0001,1=1010,1 // -7+1,5=-5,5
1111,1+101,1=1101,0 //-0,5+(-2,5)=-3

ii)+iii)
Beachte: Ergebnis ist 2er-Kompl., sprich invertieren, 1 dazuzählen und neg.Vorzeichen nicht vergessen. Im iii) noch vor dem invertieren die erste eins streichen.

So habe ich es verstanden, gebe keine Garantie.
Lg Dana

Antworten mit Zitat
Foren-Übersicht / Rechnerarchitektur (SS08)

Alle Zeiten sind GMT + 1 Stunde
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


die-informatiker.net
Das Forum der Informatik an der LMU (Uni München)
Ein Projekt des LMU Alumni Informatik e.V.
News
News Archiv
alle Termine
Foren Info
Wichtige Links:
• Algebra I
• Informatik I
• Analysis I
• Informatik III
• Analysis II
• Programmierpraktikum
• Lineare Algebra I
• Analysis II
• Analysis II Übungen
• Bioinformatik-Portal
• Digitale Medien
• Diskrete Strukturen :: Übungsblätter
• Diskrete Strukturen
• Informatik II
• Informatik I



Impressum
© 2007 die-informatiker.net
Powered by phpBB 2.0.23 © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de und die-informatiker.net.