Negative Binärzahlen - Was meint mein Professor hiermit?
10001100 ist doch erstens schonmal ganz klar -116.
-128 + 12 = -116.
Ausserdem, WENN man es so macht wie er, und das 1 einfach als davorgeklatschtes Minus sieht, dann müsste man, damit 1000000 (-0) und 0000000 (0) nicht dieselbe Zahl sind, und dass -128 eine Zahl ist, alle Minuszahlen 1 nach links verschieben (sodass 11111111 -> -128 anstatt -127) . Somit wäre 10001100 -13.
Was meint mein Prof also mit dem Beispiel??? Das macht doch NULL Sinn??? Kann mir das wer erklären wie 10001100 -12 sein soll, wenn es Zahlen bis -128 anstatt bis -127 geben soll?? Ist dann 10000000 die -128 oder was??
9 Antworten
schau dir einfach an wie 2er kompliment funktionieren im gegensatz zu nur komplement.
https://www.elektronik-kompendium.de/sites/dig/1708071.htm
Ein Nachteil des Zweierkomplements ist, dass man zwischen dem positiven und negativen Wert nicht einfach so umrechnen kann.
Das Vorzeichen einer Zahl (z. B. von -3 auf 3) ändert man dadurch, dass man alle Bits zuerst invertiert und danach noch eine 1 addiert. Beispielhaft wird aus der "-3" mit "1101" zuerst "0010" (invertiert) und dann "0011" (plus 1), und somit die Wertigkeit "+3".
fals du dich mal damit beschäftigen willst, was der programmierer in assembler alles selber machen muss um mit signed werten zu arbeiten .
http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt
dem rechner ist es egal , er behandelt alles gleich .
praktisch kann die CPU nur addieren .
https://www.retro-programming.de/programming/grundlagen/zahlensysteme/wie-der-rechner-rechnet/
das liegt daran das 256 / 2 = 128 sind
wenn wir die 0 einschließen bei den positiven zahlen ahben wir 127+0 = 128 Zahlen
also bleiben noch -128 zahlen übrig für die restliche Darstellung .
eine Vorzeichenbehaftete Zahl ist eine wo 1 bit als vorzeichen bit genommen wird
00 00 00 00
und
10 00 00 00
beleibt 0
somit ist
01 11 11 11 = 127
und
11 11 11 11 = -127
ist auch logisch , weil 127 + 127 = 254 , es sind aber mit 0 einschließlich 256 Werte . Also muss ein Wert doppelt 0 ergeben .
ich habs nochmal richtig als antwort geschrieben. es geht um die werte zuweisung . -128 ist also 10 00 00 00 , also nur vorzeichen . Nur bei den positiven musst du den zustand 00 00 00 00 abziehen von den 01 11 11 11 möglichen .
ist auch logisch , weil 127 + 127 = 254 , es sind aber mit 0 einschließlich 256 Werte . Also muss ein Wert doppelt 0 ergeben .
Das zweierkomplement arbeitet so . 10 00 00 00 ist -128
von 0 bis 127 sind dann die anderen 128 zustände .
10001100 = 12 entspricht aber nicht dem Zweierkomplement ^^
Also hat der einfach gemixt?
10001100 = 12 entspricht Nicht dem Zweierkomplement.