Datenformate – Kodierung von Zahlen und Zeichenketten

In diesem Beitrag geht es um Datenformate. Es gibt eine Kodierung von Informationen. Z.B. im Computer die Sequenz von nur 2 Symbolen, und zwar die 0 und 1 oder anders gesagt „Spannung oder keine Spannung“. Eine Stelle im Code heißt hier „Bit“. Ein „0/1“ Wert heißt also Bit.

Binärcode

Die Motivation zur Erfindung des Binärcodes ist relativ einfach. Zum einen ist die Technische Umsetzung sehr einfach, denn es werden nur 2 Zustände gebraucht. (Z.B. Strom an oder Strom aus) Des weiteren liegt dem Binärsystem Robustheit und die Geschwindigkeit der Digitaltechnik zur Grundlage. Natürlich ist diese simple Technik deshalb auch sehr kostengünstig herzustellen und zu implementieren.

Man hat die maximale Sicherheit, das Daten richtig gespeichert werden, da es nur 2 Zustände gibt.

Hexdezimaldarstellung

Die Hexadezimaldarstellung ist die übliche Darstellungsweise von Binärcode in „Nibbles“ (4 Bit Päckchen) Die Darstellung erfolgt als eine Ziffer von 0-9 + A-F um 16 Zustände anzuzeigen. Häufig erkennt man Hexadezimalzahlen durch den Präfix „0x“, „$“ oder dem Suffix „h“.

Arbeitsspeicher des Computers

Im Arbeitsspeicher des Computers sind Binärdaten meist Byteweise adressierbar. Das heißt, das sie immer in 8 Bit Päckchen adressierbar sind. Die Darstellung der Adressen und dem Speicherinhalt sind typischerweise Hexadezimal dargestellt.

Der CPU ist mit dem Speicher über einen Datenbus verbunden. Datenbusse haben einen Querschnitt, welcher typischerweise 64 Bit bzw. 32 Bit ist. Technisch gesehen ist im Speicher 8 Bit (8 Speicherzellen) eine Adresse. Die CPU ist zusätzlich mit einem Adressbus mit dem Speicher verbunden. Der Adressbus ordnet die Speicherzellen im Arbeitsspeicher und der Datenbus schiebt die Daten von Porzessor in den Speicher. Die Länge des Akkumulators im Prozessor bestimmt, wie viele Bit auf einmal übertragen werden können.

Es gibt in verschiedenen Systemen verschiedene Bytereihenfolgen. So hat z.B. die „Intel Byte-Order“ (Little Endian) immer das niedrigwertige Byte zuerst und die „Motorola Byte-Order“ (Big Endian) immer das höherwertige Byte zuerst. Um die Formate untereinander ausgetauscht lesen zu können, muss der Porzessor zuerst die komplette Bitfolge umkehren um es in der gewohnten Schreibweise lesen zu können und dir richtigen Daten anzeigen zu können.

Überblick

Ganze Zahlen werden in Binärschreibweise in einer festen Länge von (meist) 8 Bit (1 Byte) im Speicher angegeben.

Es gibt Unterschiede bei Zahlen nach folgenden Regeln:

  • Vorzeichenbehaftet oder Vorzeichenlos
  • Exesscode
  • Vorzeichen und Betragswert
  • Einerkomplement
  • Zweierkomplement

Ganze Zahlen

Exesscode

Eine Möglichkeit zur Darstellung vorzeichenbehafterter Zeichen ist die Wertebereichsverschiebung.
Dabei gibt es eine feste Verschiebung einer Zahl mit „b“ (Bias) gegenüber der Vorzeichenlosen Darstellung.
Das erste Bit zeigt das Vorzeichen (0 bei negativen Zahlen) Somit wird die 0 mit 128 oder 10000000 kodiert.

0 = 128 = 10000000
1 = 129 = 10000001

Somit ist es möglich, negative Vorzeichen und positives Vorzeichen anzuzeigen und zu kodieren. Diese Variante nennt sich „Excess 128“. Excess 128 Code gibt an, das die Verschiebung 128 ist.

Darstellung als Vorzeichen und Betragswert

Alternativ gibt es die Kodierung das, das vorfolgende Bit das Vorzeichen angibt, ohne Verschiebung oder ähnliches.
Also: Höchstwertiges Bit gibt das Vorzeichen an, Nachfolgende Bits die Zahl. Die 0 wird leider nicht konkret definiert. Das erste Bit wäre in diesem Beispiel überflüssig.

Darstellung als Zweierkomplement

Das Zweierkomplement bringt invertierte Zahlen herbei. Die „-1“ und „-2“ würden folgender maßen dargestellt:

-1 = 11111111
-2 = 11111110

Vorteile

  • Rechnen möglich (Auch mit negativen Zahlen)
  • Null eindeutig codiert
  • Vergleiche einfach
  • Vollständige Nutzung des Wertebereiches

Dies ist die übliche Darstellung in den meisten Computersystemen.

Wie werden Zeichenketten kodiert?

Als Beispiel die Zeichenkette: H A L L O !

Erstes Problem: Wie lang ist die Zeichenkette im Speicher?
Typischerweise ist die Speicherzelle vor dem Wort die Speicherzelle, wo angegeben wird wie lang das Wort ist.
Nachteil: Nur Zeichenketten unter 255 Zeichen möglich

Zweite Möglichkeit: Am Ende eine Endmarke des Wortes. (Nullterminierung)

Marvin Sengera

Hey! Ich bin Marvin Sengera, Inhaber der Internetagentur "Binärfabrik" aus Paderborn. Ich habe mein Bachelorstudium Informatik mit Schwerpunkt Industriespionage an der Hochschule Hamm Lippstadt abgeschlossen und absolviere derzeit meinen Master in Fachrichtung "Technical Entrepreneurship and Innovation". Ich beschäftige mich rund um die Themen Informatik, Innovation & Unternehmensgründung.

Das könnte dich auch interessieren …

Schreibe einen Kommentar