Thread ~- anstatt -- (10 answers)
Opened by leo11 at 2009-11-30 16:30

LanX-
 2009-11-30 19:48
#128778 #128778
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
hmm ich frage mich wieso sich hier in letzter Zeit so viele 1x1 Fragen der Informatik türmen.

Computer-Pisa? ;-)

Die Antworten von Murphy und Matthias sind korrekt, man kanns etwas "pädagogischer" erklären...

Kurzfassung: Um negative Zahlen darstellen zu können gibts Signed Integers, wo das höherwertigste Bit praktisch ein Negativflag ist und die restlichen Bits (fast) den invertierten Betrag wiedergeben.

Nun hätte man auf diese Weise aber streng genommen zwo Nullen, also +0 und -0, die -0 spart man sich.

Denn bei einem Nibble (= 4 Bits) hätte man sonst:

Code: (dl )
1
2
0000 für +0
1111 für -0

Na dann lieber 1 dazu dann steht

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
          S   U
0111 für 7 7
0110 für 6 6
usw.
0001 für 1 1
0000 für 0 0
1111 für -1 15
1110 für -2 14
1101 für -3 13
usw.
1000 für -8 8


Deswegen kann ich mit 4 Bits Zahlen von -8 bis +7 darstellen und generell "fehlt" immer eine positive Zahl wg der Null.

Interpretiert man die letzte Tabelle nun Vorzeichenlos, fällt auf das hier auch immer 1 abgezogen wird, die Abstände sind identisch.

(Nachtrag: Tatsächlich habe ich die obere Hälfte der Bitdarstellung für 8u - 15u oben "abgeschnitten" und unten für -1s - -8s "angeklebt" (Zeilen 7-11 !!!)

Sprich ich kann die Darstellung negativen Zahlen auch durch eine vorzeichenlose Subtraktion von 16= 2^4 herleiten:

Code: (dl )
1
2
- |x|  = 16    - |x|    
- 0010 = 10000 - 0010 = 1101 = -3

Diese Konformität der Darstellung hat dadurch den großen Vorteil dass ich die gleichen Rechenwerke wie für unsigned Integers weiterverwenden kann z.B.

rechnet sich -3 +2= -1 genauso wie 13 +2 = 15, es kommt nur auf die Interpretation an:

Code: (dl )
1
2
3
4
5
        U    S
1101 13 -3
+ 0010 2 2
------
1111 15 -1


Analog zu den anderen Grundrechenarten( siehe WP-Artikel)

Also war das 2er-Komplement nicht nur mathematischen Vorteilhaft sondern dadurch auch schaltungstechnisch ökonomisch.

Und Schaltungen zu sparen war noch lange nach Zuse und Turing ein Topkriterium...

Verständlich?

EDIT: Vorzeichenfehler
UPDATE: Zahlenstrahl erweitert.

NACHTRAG: Letztendlich ist für Logik und Verständnis viel wichtiger das -x als 2^n-x dargestellt wird und weniger die "verschobene" (inkrementierte) Komplementbildung der restlichen Bits.

Das hat historische Gründe, für einen Elektroniker ist es viel einfacher einzelne Bits zu invertieren (simples XOR) als ganze Bitgruppen zu subtrahieren (Subtraktionsschaltung, Carrybits, usw). Sprich die praktische elementare Umsetzung bestimmt die sprachliche Darstellung und "Denke" als 2er-Komplement.

Last edited: 2009-11-30 20:37:53 +0100 (CET)

View full thread ~- anstatt --