Dualzahl negativ oder positiv?

5 Antworten

Die Zahl selbst ist immer positiv, sie hat kein Vorzeichen. Man kann also auch nichts erkennen. Das ist vergleichbar mit dem Kilometerzähler beim Tacho. Der hat einen Wertebereich von 000000 bis 999999. Negative Werte können damit nicht dargestellt werden. Wenn jemand einen Wagen mit 50000 km kauft, könnte der z.B. seine gefahreren km dort mit 0 beginnen lassen und alle km, die vor seinem Besitz gefahren wurden, als negativ betrachten. Das wäre eine willkürliche Interpretation, die mit dem Zähler selbst nichts zu tun hat. Der bleibt wie gehabt, ohne negative Darstellungsmöglichkeit.

Wenn man negative Zahlen braucht, muss man sich behelfen und bei der Interpretation eine Vereinbarung treffen. Um damit auch rechnen zu können, definiert man die erste Hälfte des Zahlenbereichs als negativ, die andere als positiv. Man verschiebt die 0 sozusagen in die Mitte des vorhandenen Zahlenbereichs auf der Zahlengeraden. Der Arithmetik ist das egal, wie man die Zahlen interpretiert, die rechnet immer richtig.

Um nochmals auf ein Zählwerk zurückzukommen: Wenn man beim Stand 000000 um 1 zurückdreht, bekommt man 999999, was arithmetisch der -1 entspricht. Das veranschaulicht, dass der absolute Betrag der Zahlenreihe auf der negativen Seite absteigend verläuft.

Noch ein Beispiel dazu: Ich nehme das Wort Kiefer. Woran erkenne ich, ob das ein Baum oder der Knochen ist, wo die Zähne drauf sind? Das kann man nur aus dem Zusammenhang erkennen, bei dem das Wort einer Bedeutung zugeordnet ist.

Das hängt wirklich ab, wie breit deine Variable ist, in der du die Zahl speicherst, ob nun als short(2Byte) 4Bit-Int(32-Bit-Systeme) oder als 8 Bit-Int(64-Bit-Systeme).

Bei unsigned int werden alle bits herangezogen. Bei den signed Typen ist immer das jeweils höchstwertige Bit, bei 2-Bit short wäre das Bit Nr 15 gesetzt.

Zur Bildung der negativen Zahl werden die Zahlen zuerst negiert( 1:-Komplement) und dann einfach 1 dazu gezählt(2-Komplement):

Bei 1010

wäre das 1-Komplement 0101

und das 2-Komplement 0110

binär-----------vorzeichenlos------1Komplement--------2Komplement

00000101----------5---------------  11111010--------------11111011  (=-5)

Zunächst musst du wissen, in wievielen Bits deine Zahlen codiert werden. In deinem Fall scheinen das 4  Bits zu sein.

Es ist richtig, dass 1101 als Dezimalzahl 13 interpretiert werden kann. Deshalb hast du ja die Regel, wie eine Zahl zu interpretieren ist. 

In diesem Fall steht doch genau da, wann Zahlen positiv sind: 

wenn das 1. Bit der Vierer-Folge auf 1 gesetzt ist. Damit hast du nur 3 Bits für die Zahlen und kannst auch nur von -7 bis +7 zählen.

Es gibt noch andere Möglichkeiten, binär negative Zahlen darzustellen - z.B. das Einser- oder Zweier-Komplement

An der Zahl selbst gar nicht. Hängt vom Kontext ab.