Darstellungen

Zahlen

Komplementer

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 -

Zweierkompliment erstellen

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

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

Komma Zahlen

Stellenwerte $2^n \Rightarrow \{\ldots, 32, 8, 4, 2, 1, \frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \ldots\}$

  1. Natürlichen anteil zuerst ausrechnen
  2. $x_n = x_{n-1} \cdot 2$
  3. Bit setzen
    • $x_n \ge 1 \Rightarrow$ Bit = 1 und $x_1 = x_1 - 1$
    • $x_n < 1 \Rightarrow$ Bit = 0
  4. $x_n = 0 \Rightarrow $ Ende

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/Überlauf

Ü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:

  1. 8. Bit verdoppeln
  2. Addition durchführen
  3. Fehlerprüfung
    • 9. = 8. Bit ⇒ Alles OK
    • 9. <> 8. Bit ⇒ Overflow

Floatingpoint

  1. Dec → Bin
  2. Normieren (1,….)
  3. Mantisse = 23 Stellen nach dem Komma
  4. Exponent = 127 + Stellen die das Komma nach lenks wanderte
    oder
    Exponent = 127 - Stellen die das Komma nach rechts wanderte
  5. Vorzeichen = 1 für Minus
    oder
    Vorzeichen = 0 für Plus

http://zogg-jm.ch/IEEE_754_Umwandlung_Gleitkomma_zu_32_u_64_Bit.html

http://www.exploringbinary.com/binary-converter/

Zeichen

Code point = Nummer eines Zeichens

Zeichensätze

  • Code point –> Zeichen
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)

UTF-8

  • Byte Strom –> code point
  • Selbst syncronisierend
  • Decodierungsfehler –> Replacement char
    • Unvollständig (zu wenig follge bytes)
    • Unbekannter header
    • Ungültiger code point
Muster Bedeutung
0xxx xxxx 1 Byte Zeichen (wie ASCII)
10xx xxxx Folge Byte
110x xxxx 2 Byte header
1110 xxxx 3 Byte header
users/skruppy/ext/uni/2/ra/rep.txt · Zuletzt geändert: 2012/07/19 00:01 von 88.66.198.26