www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - Umwandeln von Komplementen
Umwandeln von Komplementen < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Umwandeln von Komplementen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:18 Do 19.01.2012
Autor: steftn

Aufgabe
Hier gehts zur Aufgabenstellung:

[]Klick mich


Hallo,

im obigen Link findet ihr eine Tabelle. Die Werte beziehen sich auf 8 Bit vom Typ signed char (also von -128 bis 127). Die roten Werte habe ich ausgefüllt, die Werte mit schwarzer Schriftfarbe waren gegeben.

Ich hoffe die roten Werte stimmen soweit.

Allerdings hatte ich mit der letzten Spalte ein Problem.
Woher weiß ich jetzt ob die Dezimalzahl positiv oder negativ ist, wenn als 2er-Komplement 1111 1111 gegeben ist?

Weil das zurückrechnen vom 2er-Komplement von 1111 1111 geht ja so:

1111 1111 invertieren --> 0000 0000

Dann weiß man, dass 0000 0000 als Ergebnis rauskommen muss, wenn man "Rückwärts rechnet":

  ???? ????                 0000 0001
+ 1111 1111               + 1111 1111
-------------   somit:   -------------  
  0000 0000              (1)0000 0000

Also kommt für die Zahl 0000 0001, also [mm] 1_{10} [/mm] heraus.
Aber wo sehe ich jetzt ob es -1 oder +1 ist?

Man kann das zurückrechnen auch so machen:

  ???? ????                 1111 1110
+ 0000 0001               + 0000 0001
-------------   somit:   -------------  
  1111 1111                 0000 0001


Dann muss man 1111 1110 nur noch invertieren -->
0000 0001

Das Ergebnis ist 1, aber welches Vorzeichen hat es?


Oder ist es von "Haus aus" eine negative Zahl wegen dem 2-er Komplement von 1111 1111 ?

mhm, vielleicht kann mir da jemand Helfen :-)

        
Bezug
Umwandeln von Komplementen: Antwort
Status: (Antwort) fertig Status 
Datum: 23:26 Mo 23.01.2012
Autor: sandp


> Hier gehts zur Aufgabenstellung:
>  
> []Klick mich
>  
> Hallo,
>  
> im obigen Link findet ihr eine Tabelle. Die Werte beziehen
> sich auf 8 Bit vom Typ signed char (also von -128 bis 127).
> Die roten Werte habe ich ausgefüllt, die Werte mit
> schwarzer Schriftfarbe waren gegeben.
>  

hallo,
hier gibst du den Wertebereich bis 127 an, aber in deiner Tabelle ist die erste Dezimalzahl 214, da kann wohl etwas nicht stimmen.

> Ich hoffe die roten Werte stimmen soweit.
>  
> Allerdings hatte ich mit der letzten Spalte ein Problem.
>  Woher weiß ich jetzt ob die Dezimalzahl positiv oder
> negativ ist, wenn als 2er-Komplement 1111 1111 gegeben
> ist?
>  
> Weil das zurückrechnen vom 2er-Komplement von 1111 1111
> geht ja so:
>  
> 1111 1111 invertieren --> 0000 0000
>  
> Dann weiß man, dass 0000 0000 als Ergebnis rauskommen
> muss, wenn man "Rückwärts rechnet":
>  
> ???? ????                 0000 0001
>  + 1111 1111               + 1111 1111
>  -------------   somit:   -------------  
> 0000 0000              (1)0000 0000
>
> Also kommt für die Zahl 0000 0001, also [mm]1_{10}[/mm] heraus.
>  Aber wo sehe ich jetzt ob es -1 oder +1 ist?
>  
> Man kann das zurückrechnen auch so machen:
>  
> ???? ????                 1111 1110
>  + 0000 0001               + 0000 0001
>  -------------   somit:   -------------  
> 1111 1111                 0000 0001
>
>
> Dann muss man 1111 1110 nur noch invertieren -->
>  0000 0001
>  
> Das Ergebnis ist 1, aber welches Vorzeichen hat es?
>  
>
> Oder ist es von "Haus aus" eine negative Zahl wegen dem
> 2-er Komplement von 1111 1111 ?
>  
> mhm, vielleicht kann mir da jemand Helfen :-)

also um auf die Dezimalzahl 127 zu kommen benötigst du nur 7 Bits in Binärdarstellung bzw. Zweierkomplement.
Daher benutzt man, das 8te Bit um das Vorzeichen anzugeben.
ein Beispiel
[mm] -73_{10} [/mm] = [mm] 11001001_{2} [/mm]
[mm] 73_{10} [/mm] = [mm] 01001001_{2} [/mm]

ich habe deine Tabelle jetzt nicht nachgerechnet, aber ich denke du solltest sie nochmal überarbeiten, da du ja noch nicht wusstest wie du das Vorzeichen verarbeiten kannst, wenn du fertig bist kannst du sie ja wieder uploaden, dann schau ich drüber.

und noch ein Tipp mach dir Gedanken für was das Zweierkomplement gedacht ist, damit du weißt wie das Zweierkomplement für negative Zahlen, bzw. positive Zahlen gebildet wird, da gibt es ein Unterschied.

Gruß sandp

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]