Woher weiss ich ob eine Binärzahl positiv oder negativ ist?

8 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.

Dein Fehler liegt in der Interpretation:

Ist bekannt das es eine vorzeichenbehaftete (signed) Zahl ist, kannst du das Vorzeichen das am höchstwertigsten Bit (MSB) erkennen/ablesen.

Ist es eine vorzeichenlose (unsigned) Zahl, ist das linke bit halt nur das höchstwertigste.

Als was die Binärfolge interpretiert wird, muss vorher irgendwie vereinbart werden. Bei den vorzeichenbehafteten Zahlen gibt es da im Wesentlichen die 2er Komplementdarstellung ("Der Standard") und die 1er Komplementdarstellung (aka. Vorzeichenbetrag).

Bei mir stellt das eine 19 und eine -13 dar, aber egal

Ob es negativ sein kann hängt davon ab wie du es deklariert hast. Ist es ein vorzeichenbehafteter Integer oder nicht? Nur daran kannst du das festmachen. Der laufende Prozess muss das natürlich auch wissen, damit er im Additionswerk auch richtig rechnet!

Nur anhand einer Binärzahl kannst du das nicht erkennen. Eine 1111 ist genauso eine 15 wie auch eine -1. Es kommt halt immer darauf an WIE du es darstellst!

Dein Missverständnis beruht darauf, dass du 2 Sachen verwechselst.

Die Binären Zahlen (aus der Mathematik)

und Codierungen (aus der Informatik)

Die ersten haben + und - Zeichen, wie unsere normalen Dezimalzahlen auch. Bei den zweiten kommt es darauf an, WIE man codiert, da gibt es verschiedene Systeme. Meistens (oder immer, so genau weiß ich das nicht) ist denn wirklich die erste Ziffer das Vorzeichen, so wie du gesagt hast.

Binärzahlen sind generell positiv ( von Null mal abgesehen) - Negativzahlen stellt man so dar das das erste Bit angibt das eine negative Zahl ist.

-1 = 1001
-2 = 1010
-3 = 1011
1  = 0001
2= 0010
3= 0011

Brudi8 
Fragesteller
 23.10.2015, 19:55

Und wieso ist jetzt 1011 = -3 und nicht 11? Diesen Unterschied verstehe ich leider immer noch nicht :/

0
stealthuser  23.10.2015, 20:01
@Brudi8

In der Regel weiß man wie viel Bit die Zahl umfasst und welche Bits die Zahl repräsentieren und welches Bit die Zahl in negative umkehrt. Das Beispiel von Bloeckchen war hypothetisch.

0