Zahl 2^e in Zweierkomplement

Neue Frage »

goldfisch91 Auf diesen Beitrag antworten »
Zahl 2^e in Zweierkomplement
Wir haben Aufgaben bei denen wir bestimmen müssen ob eine Zahl im Zweierkomplement mit einer bestimmten Anzahl von Bits darstellbar ist. Ich bin mir nicht ganz sicher wie man das am besten prüfen soll
Beispiel:

-2^6 mit 8 Bits: Zweierkomplement? ( wenn nicht dann mit "nein" antworten)
Kompi Auf diesen Beitrag antworten »

Was weißt du denn über das Zweierkomplement?
Der Wertebereich bei Bits umfasst



Ist dir klar warum?
goldfisch91 Auf diesen Beitrag antworten »

ja, man kann ja leicht sehen ob die Zahl ( zb -2^6) dann im Bereich liegt bei dieser "formel". aber was mir scwer fällt ist dann vorallem eine negative Zahl ins zweierkomplement zu schreiben. Ich weiß irgendwie nicht wie das gehen soll
Kompi Auf diesen Beitrag antworten »

Eine Möglichkeit:
1) Den Betrag der Zahl im Binärsystem darstellen
2) Jedes Bit einzeln negieren
3) Die entstandene Zahl um 1 erhöhen

Beispiel mit der Zahl -6 bei 8 Bit:
1) 6 im Binärsystem: 00000110
2) Negieren: 11111001
3) Inkrementieren: 11111010
goldfisch91 Auf diesen Beitrag antworten »

ah ok, aber das problem ist dass das -2^6 ist und nicht 6 ^^
Kompi Auf diesen Beitrag antworten »

Was ist denn 2^6? Augenzwinkern
Und wie sieht die Zahl binär aus?
 
 
goldfisch91 Auf diesen Beitrag antworten »

ich würde jetzt sagen:

1000000

64 - 32 - 16 - 8- 4 -2 -1

also nur ganz vorne die 1 und somit 64 oder nicht ? unglücklich oder ist das negativ da die eins vorne steht
Kompi Auf diesen Beitrag antworten »

Ja, 1000000 ist richtig.

Jetzt musst du auf 8 Bit auffüllen (vorne mit Nullen füllen) und dann die Punkte 2 und 3 von oben abarbeiten. Nein, negativ ist das Ergebnis nicht. Das ist erstmal nur die Binärdarstellung von 64.
Kompi Auf diesen Beitrag antworten »

Noch etwas:
Es ist Interpretationssache, welche Zahl aktuell dargestellt wird.
Betrachte 11111010.
Im Zweierkomplement entspricht das, wie wir oben gesehen haben, -6.
Betrachtest du die Zahl vorzeichenlos, so entspricht 11111010 der Zahl 250.
goldfisch91 Auf diesen Beitrag antworten »

ich versteh nicht ganz warum du von -6 sprichst. ich meine -2^6. das müsste doch im einerkomplement -64 sein
Kompi Auf diesen Beitrag antworten »

-6 bzw. 6 war ein an den Haaren herbeigezogenes Beispiel und deckt sich rein zufällig mit deinem Exponenten. Du hast die Zahl -64 und auch schon die Binärdarstellung von abs(-64) = 64 betimmt, nämlich 1000000. Jetzt machst du noch 8 Bit daraus und erhälst 01000000.

Jetzt wende die Punkte 2 und 3 von oben an und du erhälst das Zweierkomplement von -64 bei 8 Bit.
goldfisch91 Auf diesen Beitrag antworten »

ok aber wie sehe ich dann ob das noch im rahmen liegt? so wie ich das sehe wird bei der inkrementierung (und der darauf folgenden addierung) keine neue stelle hinzugefügt, was doch dazu führt dass die zahl -2^6 sobald sie normal in binär als 2^6 darstellbar ist auch in zweierkomplementdarstellbar sein müsste oder?

sprich wenn wir sehen dass mit 8 stellen wir diese zahl nicht darstellen könnten als 2^6 dann sicherlich auch nicht als -2^6 oder?

da gibts bestimmt dann noch den spezialfall da es im zweierkomplement im positiven eine zahl weniger gibt, wie sieht man das dann?
Kompi Auf diesen Beitrag antworten »

Ob eine Zahl bei gegebener Bitlänge im Zweierkomplement darstellbar ist, entnimmt man dem Wertebereich aus Beitrag #1.

Da die Null im Zweierkomplement als positive Zahl (höchstes Bit ist 0) gilt, kannst du eine negative Zahl mehr darstellen. So kannst du bei 8 Bit die Zahl 128 nicht mehr darstellen (127 ist die größte Zahl), -128 hingegen schon.
goldfisch91 Auf diesen Beitrag antworten »

wie würdest du dieses "rezept" auf ein beispiel wie -2^7 -2 mit 7 stellen anwenden?

ich wüsste nicht was ich mit den -2 machen müsste
Kompi Auf diesen Beitrag antworten »

Du hast eine Zahl und eine Bitlänge von gegeben.
Zuerst kontrollierst du, ob sich mit Bits im Zweierkomplement überhaupt darstellen lässt. Dazu überprüfst du die Ungleichung

Sollte die Ungleichung wahr sein, kannst du ins Zweierkomplement umwandeln.
1) Der Fall ist einfach. Das Zweierkomplement entspricht der Binärdarstellung von auf Bits aufgefüllt.
2) Im Falle wendest du die folgenden Punkt an.
- Den Betrag von im Binärsystem darstellen (auf Bit)
- Jedes Bit einzeln negieren
- Die entstandene Zahl um 1 erhöhen

Das kannst du jetzt selbstständig für jedes x durchführen.
Ich hoffe, damit haben sich deine Probleme geklärt. Augenzwinkern
Kompi Auf diesen Beitrag antworten »


So ist es richtig!
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »