Frage von Kostros, 61

Wie unterscheidet man eine positive und negative Dualzahl/Binärzahl in der Informatik?

Hey Leute,

mir ist nicht so ganz klar wie man das unterscheidet. Z.B.: 15 = 1111, -15 = 0001. Man invertiert ja und addiert eine 1. Wie kann ich jetzt wissen, ob 0001 eine -15 ist oder eine +1? Beim Subtrahieren kann ich damit umgehen, aber ich verstehe nicht ganz wie man das halt unterscheidet.

Lg Kostros

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von 1frozenice1, 29

Man kann dies leider nicht direkt unterscheiden. Beim Programmieren ist der Programmierer deswegen gezwungen signed oder unsigned anzugeben (oder es gibt einen implizieren Standard).

Falls es so eine Aufgabe gibt würde ich immer mit einer Fallunterscheidung arbeiten.

Kommentar von Kostros ,

Okay viel dank, Hab schon gedacht, dass man das irgendwie Unterscheiden muss und war voll am verzweifeln, weil ich es einfach nicht kapiert hab :D

Antwort
von Schachpapa, 41

Man hat entweder vorzeichenbehaftete oder vorzeichenlose Zahlen. Das erste Bit ist dann das Vorzeichen.

1111 ist -1 und 0001 ist +1

Vorzeichenbehaftete 4-Bit-Zahlen gehen von -8 (1000) bis 7 (0111)

Kommentar von Kostros ,

Wenn ich aber vor mir nur die Zahl 1111 sehe, kann ich ohne irgendeine andere Information wissen, welche Zahl gemeint ist? Ob 15 oder -1.

Kommentar von Tschoo ,

dann ist es 15

Kommentar von wotan38 ,

Man kann es nicht unterscheiden, man braucht es auch nicht zu unterscheiden. Denn nicht die Zahl bestimmt in diesem Fall den Wert, sondern wie ich die Zahl sehen will, wie ich sie interpretiere. Da spielt der Zusammenhang eine die Rolle. Ich kann in diesem Fall auch nicht erkennen, ob es sich überhaupt um eine Binärzahl handelt. Es könnte genau so gut eine Dezimalzahl sein, ein Buchstabe oder ein Befehl in einer Steuerung.

Zum besseren Verstehen: Ich schreibe hier eine Null hin 0.

Ist das nun eine binäre, dezimale, oktale oder hexadezimale 0? Oder gar eine 0 aus dem 11-er Zahlensystem, das ich mir gerade ausgedacht habe.

Alleine in den Raum gestellt und ohne Bezug auf Irgendwas hat diese Null im Grunde überhaupt keine Bedeutung.

Beim ersten Siemens Rechner 2002, einem noch dezimal rechnenden Computer, wurde die dezimale 0 binär als 0011 dargestellt (die 9 dann als 1100). Das hatte schaltungstechnische Gründe, weil 0000 kein Signal bedeutet hätte.

Kommentar von 1frozenice1 ,

Nein, da der Dezimale Wert einer Binärzahl immer eine Sache der Interpretation (signed/unsigned) ist.

Kommentar von Kostros ,

Es muss also genauer definiert werden? Und signed wäre dann, wenn die linke Zahl das Vorzeichen vorgibt? 0=positiv, 1=negativ?

Kommentar von 1frozenice1 ,

Nicht wenn es eine 4 Bit signed Zahl ist; hier wäre -1 tatsächlich das richtige Ergebnis. (Darstellung über zweier Kompliment)

Kommentar von Schachpapa ,

1111 kann je nachdem 15 oder -1 sein.

Aber 0001 ist immer +1 und nie -15

Wenn die Binärzahl ein Vorzeichen haben soll, ist das immer das linkeste Bit und was dann übrig bleibt (hier drei Bit) steht für die Zahl zur Verfügung.

Zumindest habe ich es noch nie anders gesehen.

Kommentar von Kostros ,

Alles klar. Ich danke euch allen für die Hilfe.

Kommentar von wotan38 ,

Ich hatte auch mal (in den 60-ger Jahren) so ein Problem: Woher weiß der Rechner, ob eine binäre Kombination im Speicher eine Zahl oder ein Befehl ist?

Ganz einfach: Wenn sie von der Programmsteuerung gelesen wird, wird sie als Befehl interpretiert (wehe, wenn es kein Befehl ist), von der Datensteuerung gelesen ist es eine Zahl (oder eine Bedeutung, die durch diese Zahl ausgedrückt wird).

Keine passende Antwort gefunden?

Fragen Sie die Community