Unterschied zwischen signed und unsigned?

5 Antworten

Bei signed gibt es positive und negative zahlen. Bei unsigned ist die Binärzahl immer positiv.

Woher ich das weiß:Studium / Ausbildung – Informatik studiert und mit PCs & Technik beschäftigt

Unsigned bedeutet "ohne Vorzeichen". Hier können nur positive Zahlen dargestellt werden. Versucht man z.B. durch "Minus 1" weniger als 0 zu rechnen, dann springt der Wert plötzlich auf das Maximum um.

Signed, also "Vorzeichen" bedeutet, dass man auch negative Zahlen darstellen kann. Auch hier kommt es zu Werteüberläufen wenn man nicht genug Bits hat. Zählt man zu hoch, hat man plötzlich eine negative Zahl die dann immer kleiner wird wenn man weiter zählt.

Gebräuchlich ist das sogenannte "Zweierkompement" (wie das genau geht steht auf Wikipedia).

Hier wird technisch nicht unterschieden. Der CPU ist es völlig egal ob die Variable signed oder unsigned ist. Der Compiler braucht diese Information nur dazu um bei IF Abfragen Entscheidungen wie "größer/kleiner" oder "positiv/negativ" treffen zu können. Auch wichtig ist natürlich die Darstellung, also wie die Variable dann dem Menschen gegenüber dargestellt wird. Gerechnet werden beide Versionen exakt gleich.

Woher ich das weiß:Berufserfahrung

Hey,

als Programmierer fällt es mir am leichtesten es anhand von Datentypen zu erklären. Als Beispiel braucht ein char 1 Byte im Speicher, aber nur 7 davon werden genutzt wenn er signed ist, was zu einer Range von -127 bis 127 führt. Das liegt daran das das erste Bit genutzt wird um es als negative oder positive Zahl zu markieren. Wenn er unsigned ist geht die Range von 0 bis 255, da alle 8 Bit genutzt werden können, es aber nur positiv sein kann. Für die Markierung wird das most significant bit genutzt, um eine Positive Zahl darzustellen, steht es auf 0 und für eine negative Zahl steht es auf 1.

Also kurz gesagt, signed kann negativ sein, unsigned nicht.
Hoffe das war hilfreich :)

  1. Es gibt keine Binärzahlen. Es gibt Binärdarstellungen von Zahlen.
  2. Signed ist mit Vorzeichenbit und Unsigned ohne.
  3. Signed kann durch das Vorzeichen auch negative Zahlen darstellen und Unsigned kann das nicht.
  4. Bei Unsigned kann das eine Bit, das nicht für das Vorzeichen gebraucht wird, für weitere Zahlen benutzt werden.
ranger1111  15.05.2022, 23:23
  1. Es gibt so gesehen überhaupt keine Zahlen. Sind alles nur theoretische Konstrukte
  2. Was ist mit 2er-Komplement
  3. Check
  4. Check
0

Signed ist vorzeichenbehaftet und unsigned nicht.