Datentyp

Aus PlusPedia
Wechseln zu: Navigation, Suche
Der Titel dieses Artikels ist mehrdeutig. Zum internen Aufbau von Dateien siehe Dateiformat; zu den Regeln zur programmtechnischen Interpretation von Daten siehe Datenformat.
Coin Übrigens: Die PlusPedia ist NICHT die Wikipedia.
Wir sind ein gemeinnütziger Verein, PlusPedia ist werbefrei. Wir freuen uns daher über eine kleine Spende!

1 Eigenschaften eines Datentyps

  • Der zulässige Wertebereich
  • Welche Literale erlaubt sind
  • Es gibt Operatoren (Plus, Minus)
  • Funktionen auf den Datentyp (Sinus = sin(x))
  • Es gibt mit dem Typ verbundene spezifische Eigenarten

2 Zuweisung

Es gibt den Zuweisungsoperator.

  • =
    • in Python
  •  :=
    • Delphi
    • Pascal
    • PL-SQL
    • ...
  • A = 5
  • B = 5.0

A ist eine Ganzzahl - B ist eine Gleitkommazahl

ziel1 = ziel2 .... = ausdruck (Allen Variablen wird der Wert ausdruck zugeordnet. (Python)

ziel1, ziel2 = ausdruck1, ausdruck2

Erweiterete Zuweisung

x += y entspricht x = x + y

3 Struktur von Datentypen

3.1 Mathematischer Datentyp

  • Ganze Zahlen
  • Reele Zahlen
  • Irrationale Zahlen
  • Kompexe Zahlen
  • Quaternion

3.2 Elementare Datentypen

Elementare Datentypen lassen sich nicht mehr aufteilen. Typischerweiße unterstützt der Prozessor die Abarbeitung der Programme bei elementaren Datentypen.

3.3 Zahlen

3.3.1 Binäre Zahlen (Dualsystem)

In einem modernen digitalen Rechner basiert alles auf den Werten 0 und 1. Zahlen werden in das binäre System übersetzt.

Prozessoren unterstüzten eine bestimmte Wortbreite. Standard in den 2000ern waren 32 Bit. Ab etwa 2010 verbreiteten sich zunehmend 64-Bit-Prozessoren und Betriebssysteme.

Andere üblichen Basen sind 8 (Oktalsystem) und 16 (Hexadezimalsystem)

3.3.2 Formalien

3.3.2.1 Negative Zahlen

Negative Zahlen werden im Zweierkomplement dargestellt.


3.3.2.2 Byteorder

32 Bit stehen im Speicher wie folgt: 0-7 | 8-15 | 16-23 | 24-31

Die Frage ist in welcher Reihenfolge liest die Hardware die 4 Bytes aus.

Welches ist das Höherwertige Byte. Steht es unten oder oben.

Heute sind noch Little Endian und Big Endian üblich. (Anekdote von den Gullivers Reisen - Wie schlägt man ein Ei am besten auf - Ein Ei an der Spitzen oder an der Stupmfen Seite zuerst aufschlägt)

Little Endian / Big Endian / Middle Endian (obsolet)

  • Little Endian ist von Intel-x86-Prozessoren und das BS Windows
  • Big Endian, Power PC (umschaltbar), Motorla-68000-Familie, MIPS Prozessoren, HP-UX, Internet


3.3.3 Ganzzahlen

3.3.3.1 Darstellungsbereiche
  • Bei 8 Bit = 0 bis +255 oder -128 bis +127
  • Bei 16 Bit = 0 bis +65535 oder -32768 bis +32767
  • Bei 32 Bit = 0 bis 4294967295 oder -2147483648 bis +2147483647

3.3.4 Gleitkommazahl

Bei Gleitkommazahlen wird halblogarithmische Darstellung genutzt:

  • 1.24 * 10² → Dies wird dann in das Dualsystem umgewandelt.
  • Mantisse
  • Exponent
  • Basis

Risiken of Floating Point

  • Gleitkommazahlen sind nicht gleich dicht auf dem Zahlenstrahl
  • Bei single Precission liegen sie z. B. zwishcen 1 un2 8.398607 verschiedene Gleitkommazahlen

zwischen 1023 und 1024 dagegen nur 8191. Die Genauigkeit ist nicht absolut konstant. Die relative Genauigkeit ist konstant. Die Anzahl der signifikanten Stellen isnd wichtig.

3.3.5 Text

  • Schriftysteme der Welt
    • Es gibt viele Systeme und Symbole

Das Alphabet in der Informatik ist in der Informatik weiter gefasst als in der Lingustik.

Unter Alphabet versteht man (z. B. nach DIN 44300) eine total geordnete endliche Menge (oft nichtleere Menge) von unterscheidbaren Symbolen (Zeichen). (Wohlordnung)

Kurzzeichen Σ

Zeichenreihe ist eine endliche lineare Reihe von Zeichen eines Alphabets Σ. Also ist eine Zeichenkette. Eine leere Zeichenkette ist auch möglich.

Bei einer Zeichenkette geht es nicht um die Schriftart - Eine Zeichenkette unterscheidet nicht zwischen Proportional oder nichtproportional - Serifen sind auch nicht relevant.

Internationale Zeichensätze:

  • ASCII (7 Bit pro Zeichen) - 1963
  • ISO/IEC 8859 - 1966
  • Unicode ISO/IEC - 1991

3.4 Operatoren

  • Operatoren sind Beispielsweise '+', '-', '*'
  • Operatoren können unterschiedliche Bedeutungen haben, obwohl sie gleich ausehen. '+' kann die Addition bei Integerzahlen und eine Verknüfpung von Strings.

3.5 Starke Bindung

  • Bei der starken Bindung können nur gleiche Typen mit Operatoren verbunden werden. Das Ergebnis ist wieder vom selben Typ.

Beispiel: 2 + 3.5 + '0001'

  • Kann interpretiert werden als 2.0 + 3.5 + 1.0 = 1.0
  • Oder aber '2'+'3.5'+'0001' = '23.50001'
  • a = 2 # Integer 32 bit
  • c = '0001' # string 4 byte
  • b = 3.5 # Float 64 bit

Mögliche Abbildung im Speicher:

  • a = 00000002
  • c = 30303031
  • b = 400C0000
  • 00000000

Probleme sind 7 / 2 = 3.5 aber 6/2 = 3 (integer)

Ganzzahlige Division für die strenge Typisierung ist:

  • 7//3 = 3
  • Modulo 7 % 2 = 1 (7/3 = 2 Rest 1)

Stark typsierte Sprachren sind: Java, Python, Pascal

3.6 Schwache Bindung

Bei der schwachen Bindung können Datentypen gemischt werden.

  • C / C++, PHP, Perl, JavaScript sind Sprachen für schwache Bindung;

3.7 Statische

Bei einer statischen Typisierung muss für jede Variable der Datentyp angegeben werden. (Deklaration)

Gründe:

  • In großen Programmen können Fehler durch statische Typsierung verhindert werden. Und zwar zur Kompilierung. Konstanten sind Konstanten. Eine Variable kann den Typ nicht ändern.

3.8 Dynamische

Dynamische Typisierung bedeutet, dass erst zur Laufzeit entschieden wird, welchen Typ eine Variable hat. (Durch den Zuweisungsbefehl)

Gründe:

  • Weniger Schreibarbeit - aber in Python trotzdem eindeutig.

3.9 Casting und Coercion

  • implizite Typkonvertierung oder coercion (englisch für Nötigung oder Zwang)
  • explizite Typenkonvertierung oder cast(ing) (englisch eingießen, formen, werfen)

3.9.1 Implizite Konvertierung

Coercion findet oft bei Zahlen statt: Integer → Float → Complex

Dabei ist Float höher als Integer angesetzt.

Nicht unproblematisch, aber sinnvoll.

  • Vorsicht: (In Python können größere Integerzahlen als Floatzahlen gespeichert werden)

Beim Verknüpfen von zwei Variablen mit unterschiedlichen Typen, wird das Ergebnis vom höheren Typ sein.

3.9.2 Explizite Konvertierung (Casting)

Beim Casting wird beispielsweise

  • ein String in eine Zahl umgewandlet. (int(c) in Python)
  • Eine Zahl in einen String
  • Float in Integer
  • Ein Zeichen in einen ASCII-Wert (ord (c) in Python)
  • hex, oct, complex, bool

4 Links und Quellen

4.1 Siehe auch

4.2 Weblinks

4.3 Quellen

4.4 Literatur

4.5 Einzelnachweise


5 Andere Lexika




Diesen Artikel melden!
Verletzt dieser Artikel deine Urheber- oder Persönlichkeitsrechte?
Hast du einen Löschwunsch oder ein anderes Anliegen? Dann nutze bitte unser Kontaktformular

PlusPedia Impressum
Diese Seite mit Freunden teilen:
Mr Wong Digg Delicious Yiggit wikio Twitter
Facebook




Bitte Beachte:
Sämtliche Aussagen auf dieser Seite sind ohne Gewähr.
Für die Richtigkeit der Aussagen übernimmt die Betreiberin keine Verantwortung.
Nach Kenntnissnahme von Fehlern und Rechtsverstößens ist die Betreiberin selbstverständlich bereit,
diese zu beheben.

Verantwortlich für jede einzelne Aussage ist der jeweilige Erstautor dieser Aussage.
Mit dem Ergänzen und Weiterschreiben eines Artikels durch einen anderen Autor
werden die vorhergehenden Aussagen und Inhalte nicht zu eigenen.
Die Weiternutzung und Glaubhaftigkeit der Inhalte ist selbst gegenzurecherchieren.


Typo3 Besucherzähler - Seitwert blog counter
java hosting vpn norway