Negative Dualzahlen

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich werde dir jetzt mal zeigen, was ein Computer aus dieser Aufgabe macht, der eigentlich nur Addieren kann:

8 - 15   ist für den Computer  8 + (-15)

-15 stellt der Computer so dar:  0001   (alle bits werden invertiert und 1 addiert)

Der Computer rechnet also   1000 + 0001 und erhält  1001.

Da das erste Bit eine 1 ist und Flags keinen Überlauf anzeigen, ist das Ergebnis eine korrekte negative Zahl, die wieder invertiert werden muss, siehe oben:

d.h. aus 1001 wird damit  -0111  und das entspricht -7 dezimal als Ergebnis

Korrekterweise ist immer mit 8 Stellen zu rechnen, führende Nullen spielen aber keine Rolle im Ergebnis.

Na ja,  negative Dualzahlen, hier ist ein Fehler, das Minus gibt es in binär nicht, das wird mit einen Überlauf( das erste Bit darf nicht bei positiven Zahlen verwendet werden ausser man hängt einen 0er Block davor ) realisiert.

0000 1000 B - 0000 1111 B = 1111 1001 B

 und nicht  - 0000 0111 B

das Erste bit bleibt bei positiven Zahlen immer eine 0 wenn das erste bit eine 1 ist wird automatisch von einer negativen Zahl ausgegangen!

 

Mal hin weis

1111 1111 B = -1

1111 1110 B = -2

und soweiter

 

die Größte positive Zahl mit acht bit ist

0111 1111 B = 127

die kleinste positive ist 

0000 0000  B = 0

 

die größte negative Zahl ist 

1111 1111 B = -1

die kleinste negative ist

1000 0000 B = -128

 

jetzt siehst du vielleicht warum!!!

 

du musst von der

-1  = 1111 1111 B

+6 = 0000 0110 B

------------------------- abziehen

-7 = 1111 1001 B

 

Das Vorzeichen wird in einem separaten Bit gespeichert. Somit ist deine Rechnung richtig.

Beim Rechnen im Dualsystem gibts das Minus auch. 1000-1111=-1001

trotzem ist -1001 in dezi -9 aber das richtige ergäbnis ist doch -7 ???

0
@DZ501

Es ist nicht korrekt, was hier steht, es kommt nicht  -1001 heraus sondern exakt 1001, und das wiederum bedeutet bei vorzeichenbehafteten Zahlen -0111 dual = - 7 dezimal

0

Was möchtest Du wissen?