Stellenwertsystem

Ein Stellenwertsystem zur Basis wird wie folgt definiert:

mit

Stellenwertsysteme

BasisBezeichnungZiffern
2Binär, Dual0, 1
8Oktal0, 1, ..., 6, 7
10Dezimal0, 1, ..., 6, 7, 8, 9
16Hexadezimal0, 1, ..., 6, 7, 8, 9, A, B, C, D, E, F

Schreibweisen

Beispiele für Schreibweisen von in Hexadezimal (Basis ):

Umrechnung von Stellenwertsystemen

In Dezimal

  • Jede Ziffer wird mit der Basis zur Position multipliziert und dann zusammengezählt

Beispiel:

    1          0          1        , 1          1
=   1*2^2    + 0*2^1    + 1*2^0    + 1*2^(-1) + 1*2^(-2)
=   1*4      + 0*2      + 1*1      + 1*0,5    + 1*0,25
=   4        + 0        + 1        + 0,5      + 0,25
=   5,75

Beispiel:

    5       , 5
=   5*16^0  + 5*16^(-1)
=   5       + 5*0,0625
=   5,3125

Horner-Schema

  • Die höchste Stelle wird mit der Basis multipliziert
  • Dazu wird die nächstniedrigere Stelle gezählt und alles wieder mit der Basis multipliziert
  • Das wird wiederholt bis zum Ende

Beispiel:

    1      1      0      0      1
((((1)*2 + 1)*2 + 0)*2 + 0)*2 + 1      = 25

Beispiel:

   2      1      7      3
(((2*8) + 1)*8 + 7)*8 + 3      = 1147

Verfahren der fortgesetzen Division mit Rest

  1. Die Anfangszahl durch die neue Basis teilen
  2. Ergebnis und Rest notieren
  3. Das Ergebnis wieder teilen und Schritte wiederholen
  4. Aufhören wenn das Ergebnis ist
  5. Die Reste in umgekehrter Reihenfolge sind die umgewandelte Zahl

Beispiel:

113    : 2    = 56    Rest 1
56     : 2    = 28    Rest 0
28     : 2    = 14    Rest 0
14     : 2    = 7     Rest 0
7      : 2    = 3     Rest 1
3      : 2    = 1     Rest 1
1      : 2    = 0     Rest 1

Beispiel:

171    : 8    = 21    Rest 3
21     : 8    = 2     Rest 5
2      : 8    = 0     Rest 2

Verfahren der fortgesetzten Multiplikation

Mit dem Verfahren können Nachkommastellen vom Dezimalsystem in andere Stellenwertsysteme umgewandelt werden. Kombiniert man dieses Verfahren und das der fortgesetzten Division mit Rest, so können Kommazahlen umgewandelt werden.

  1. Die Kommazahl (mit beginnend) mit der neuen Basis multiplizieren
  2. Stelle vor dem Komma und Nachkommastellen notieren
  3. Die Nachkommastellen wieder multiplizieren
  4. Aufhören wenn es keine Nachkommastellen mehr gibt
  5. Die Stellen vor dem Komma aneinandergereiht sind die umgewandelte Kommazahl

Beispiel:

0,8125    * 2    = 1    , 625
0,625     * 2    = 1    , 25
0,25      * 2    = 0    , 5
0,5       * 2    = 1    , 0

Binary Coded Decimals

  • Beispiele: 0000 (0), 0001 (1), 1001 (9), 0001 0000 (10), …
  • Ziffern von 0-9 (wie beim Dezimalsystem)
  • Jede Ziffer wird mit 4 bit dargestelle
  • Packed: 2 Ziffern pro Byte (speichereffizienter), Unpacked: 1 Ziffer pro Byte (recheneffizienter)

Informationseinheiten

BezeichnungSymbolWert
BitbEine Binärziffer
ByteB8 b
Wordn b - Datenwort oder Befehlswort
Kilobitkbit, kb1000 b (1024 b vor Standartisierung)
KibibitKiBit1024 b durch Standartisierung
KilobytekB1000 B
KibibyteKiB1024 B durch Standartisierung
MegabitMBit, Mb1000 kb (1024 kb vor Standartisierung)

Negative Zahlen

Durch 10er-Komplement

  • Beispiel: 70 - 64 = 6
  • 10er-Komplement von 64: 36
  • 70 + 36 = 106
  • Erste stelle weglassen: 6

Vorzeichenbit

  • Ein Bit für Vorzeichen, separat vom Betrag gespeichert
  • Unterschiedliche Logik für Rechenoperationen
  • 2 Darstellungen für 0

Einerkomplement

  • Alle Bits werden invertiert
  • Erstes Bit gibt an ob die Zahl positiv (0) oder negativ (1) ist
  • Beispiel: 00000101 (5), 11111010 (-5)
  • 2 Darstellungen für 0, komplizierte Rechenlogik

Zweierkomplement

  • Keine 2 Darstellungen für 0
  • Rechenoperationen können ohne Anpassungen verwendet werden (Subtraktion ist Addition mit negativer Zahl)

Konvertierung zur negativen Zahl

  1. Alle Ziffern invertieren
  2. 1 dazuzhälen

Beispiel: 0100000011100000 in negative Zahl konvertieren

SchrittZahl
1. Invertieren1011111100011111
2. 1 dazuzählen1011111100100000

Interpretation

  • Das höchstwertige Bit hat eine negative Wertigkeit
 -128   64   32   16    8    4    2    1    Dezimal
----------------------------------------------------
    0    0    0    1    1    0    1    0      =  26
    1    1    1    0    0    1    1    0      = -26

Sign extension

  • Stellenanzahl einer Zahl erhöhen ohne ihren Wert zu verändern
  • Höchstwertiges Bit wird so lange dupliziert bis die gewünschte Länge erreicht ist

Beispiel:

 6 Bit       8 Bit        Dezimal
-------------------------------------
 100111      11100111     -25
 001101      00001101     13

Kommazahlen

Festkommazahlen

  • Darstellung von Kommazahlen mit fester Anzahl vor und nach dem Komma
  • Genauigkeitsverlust bei zu niedrigen bzw. Überlauf bei zu hohen Beträgen
123,456 : 100    =      001,234(56)
123,456 * 100    =  (12)345,600

Gleitkommazahlen

  • Nutzung von Mantisse und Exponent:
    • Mantisse speichert Ziffern
    • Exponent speichert Position der Mantisse (im Bezug einer Basis)
                  Mantisse   Basis   Exponent
123,456    =   0,  123456  *  10   ^    3

IEEE 754

  • Vorzeichen wird im ersten Bit gespeichert
    • Positiv: 0, negativ: 1
  • Normalisiert wird die umgerechnete Binärzahl auf 1,...
    • Mantisse sind die Ziffern nach dem Komma
    • Exponent ist die Anzahl der Verschiebungen um eine Kommastelle
  • Bias-Wert wird zum Exponenten dazu addiert
    • Verhindert negative Exponenten
    • Berechnung vom Bias-Wert:
    • ist die Anzahl der Bits, die zum Speichern vom Exponenten verfügbar sind

Beispiel

nach IEEE 754 umrechnen:

|VZ|EXPONENT      |MANTISSE         |
|X |X  X  X  X  X |X  X  X  X  X  X |
  • Vorzeichen: Positiv, also 0
  • Umrechnen in Binär:
  • Normalisieren:
  • Daraus ergeben sich Mantisse (10001) und Exponent ()
  • Bias-Wert: 5 verfügbare Stellen für Exponenten (s.o.), also
  • Also ist der Bias:
  • Bias zum Exponenten dazu addieren:
  • In binär umrechnen: , also ist der Exponent 10010
|VZ|EXPONENT      |MANTISSE         |
|0 |1  0  0  1  0 |1  0  0  0  1  0 |

Buchstabenkodierung

ASCII

  • 7 Bit sind ein Buchstabe
  • Ziffern, Klein- und Großbuchstaben und Steuerzeichen
  • Beispiele:
\n0Aa
10486597

Unicode

  • Großer Katalog an Zeichen, wobei jedes Zeichen eine bestimmte Bitfolge ist
  • Beispiele:
©
A9 (Hex)
169 (Dec)

UTF-8

  • Vereinigung von ASCII und Unicode
  • Immer Blöcke von 8 Bits
  • Wenn ein Block mit 0 startet ist es ein ASCII-Buchstabe
  • Andernfalls ist es ein Unicode-Buchstabe
    • Der erste Block eines Buchstaben beginnt mit so vielen 1ern wie der Buchstabe Blöcke hat
    • Alle anderen Blöcke haben immer eine 1
    • Die 1er werden immer vom restlichen Block mit einer 0 getrennt

Beispiel:

01111001
    0 -> ASCII-Zeichen
11100010 10000010 10101100
    1110 -> Unicode-Zeichen mit drei Blöcken
    Bits danach sind dann die Bits für das Unicode-Zeichen

Arithmetik

Mit Binärzahlen

  • Gleich wie schriftliche Operationen im Dezimalsystem
   101101          110
+  101110       -   11
Ü 1 11          Ü  11
---------       ------
= 1011011       =   11

Subtraktion mit Zweierkomplement

  • Subtraktion auch möglich mittels Addition des Zweierkomplement:
    • Komplement des Subtrahenden bilden
    • Zum Minuenden addieren
    • Überflüssige Bits abschneiden

Beispiel:

  0000 0111
- 0000 1001  -->  Komplement: 1111 0111

Addieren:

  0000 0111
+ 1111 0111
-----------
= 1111 1110

Bei Gleitkommazahlen

  • Addition und Subtraktion
    • Auf gleichen Exponenten bringen
    • Mantissenwerte addieren bzw subtrahieren
    • Ergebnis normalisiern
  • Multiplikation und Division
    • Mantissen multiplizieren bzw dividieren
    • Exponenten addieren bzw subtrahieren
    • Ergebnis normalisieren