Dezimal darstellung | Binärdarstellung | Zweierkomplimentdarstellung | Einserkomplimentdarstellung |
---|---|---|---|
128 | 1000 0000 | - | - |
127 | 0111 1111 | 0111 1111 | 0111 1111 |
126 | 0111 1110 | 0111 1110 | 0111 1110 |
125 | 0111 1101 | 0111 1101 | 0111 1101 |
124 | 0111 1100 | 0111 1100 | 0111 1100 |
123 | 0111 1011 | 0111 1011 | 0111 1011 |
… | … | … | … |
5 | 0000 0101 | 0000 0101 | 0000 0101 |
4 | 0000 0100 | 0000 0100 | 0000 0100 |
3 | 0000 0011 | 0000 0011 | 0000 0011 |
2 | 0000 0010 | 0000 0010 | 0000 0010 |
1 | 0000 0001 | 0000 0001 | 0000 0001 |
0 | 0000 0000 | 0000 0000 | 0000 0000 1111 1111 |
-1 | -0000 0001 | 1111 1111 | 1111 1110 |
-2 | -0000 0010 | 1111 1110 | 1111 1101 |
-3 | -0000 0011 | 1111 1101 | 1111 1100 |
-4 | -0000 0100 | 1111 1100 | 1111 1011 |
-5 | -0000 0101 | 1111 1011 | 1111 1010 |
… | … | … | … |
-123 | -0111 1011 | 1000 0101 | 1000 0100 |
-124 | -0111 1100 | 1000 0100 | 1000 0011 |
-125 | -0111 1101 | 1000 0010 | 1000 0010 |
-126 | -0111 1110 | 1000 0010 | 1000 0001 |
-127 | -0111 1111 | 1000 0001 | 1000 0000 |
-128 | -1000 0000 | 1000 0000 | - |
Von links bis ausschließlich der rechtersten 1 negieren.
1 1 1 0 1 1 0 0
0 0 0 1 0 1 0 0
Subtraktion auf Addition zurückführen.
x - y = x + c(y) 1 - 2 = 1 + -2 -1 - 2 = -1 + -2 1 - -2 = 1 + --2 -1 - -2 = -1 + --2
Beim Einerkompliment muss noch die abgeschnittene stelle zum Ergebniss dazuaddiert werden, damit der Sprung über die 0 korrigeirt wird.
-2 1101 + -2 1101 ============ 1|1010 1010 + 1 ======= 1011 = -4
Stellenwerte $2^n \Rightarrow \{\ldots, 32, 8, 4, 2, 1, \frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \ldots\}$
0,25 in Dualsystem
0,25 * 2 = 0,5 => 0 0,5 * 2 = 1 => 1 0
0,8 in Dualsystem
0,8 * 2 = 1,6 => 1 0,6 * 2 = 1,2 => 1 0,2 * 2 = 0,4 => 0 0,4 * 2 = 0,8 => 0 0,8 * 2 = 1,6 => 1 0,6 * 2 = 1,2 => 1 0,2 * 2 = 0,4 => 0 0,4 * 2 = 0,8 => 0 ...
0,5 in Dualsystem
0,5 * 2 = 1 => 1 0
Übertrag/carry = Weitere Stelle (je nach Darstellung durchaus erlaubt)
Überlauf/overflow = Zahl verlässt Wertebreich (böse)
Das ist ein Überlauf im Zweierkompliment:
1001 0001 1001 1011 =========== 1|0010 1100
Erkennung:
http://zogg-jm.ch/IEEE_754_Umwandlung_Gleitkomma_zu_32_u_64_Bit.html
Code point = Nummer eines Zeichens
Name | Größe | Bemerkung |
---|---|---|
ASCII | 7 Bit | |
ISO 8859-1 = Latin-1 | 8-Bit | Westeuropäisch |
(ISO 8859-15 = Latin-9) | 8-Bit | Westeuropäisch; mit € (und franzosen Zeichen, ohne Bruch etc.) |
(Windows-1252) | 8-Bit | Kombiniert ISO 8859-1 und ISO 8859-15 |
Unicode | 21 Bit |
(unwichtig)
Muster | Bedeutung |
---|---|
0xxx xxxx | 1 Byte Zeichen (wie ASCII) |
10xx xxxx | Folge Byte |
110x xxxx | 2 Byte header |
1110 xxxx | 3 Byte header |
… | … |