Woher weiss ich ob eine Binärzahl positiv oder negativ ist?
Hallo Zusammen :) Ich hab eine Frage, welche mich seit circa 3 Stunden ziemlich beschäftigt. Ich frage mich nämlich, wie ich herausfinden kann, ob eine gegebene Binärzahl positiv oder negativ ist. Mir ist bewusst, dass man das eigentlich an der Stelle ganz links sehen kann, indem eine 1 eine negative Zahl darstellt und eine positive eine 0 hat. Nun frage ich mich aber, ob die Dualzahl 10011 positiv oder negativ ist. Sie stellt doch einerseits 19 dar und andererseits -3, wenn die Zahl ganz links (1) anzeigt, dass diese Binärzahl negativ ist.
Was stimmt nun? Ich hab vermutlich etwas komplett falsch verstanden, aber eigentlich könnte ich doch jede Zahl "negativ" oder "positiv lesen"? Um eine einfache Erklärung dieses Missverständnisses wäre ich sehr dankbar. :)
Liebe Grüsse Brudi
8 Antworten
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).
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.
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
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.
Stichwort : Zweierkomplement oder lies hier : https://de.wikipedia.org/wiki/Zweierkomplement
Und wieso ist jetzt 1011 = -3 und nicht 11? Diesen Unterschied verstehe ich leider immer noch nicht :/