Datentypen: Unterschied zwischen den Versionen

Aus MediaWiki Fachinformatiker
Die Seite wurde neu angelegt: „ Damit ein Programm Daten verarbeiten kann, benötigen Sie Variablen. In Variablen werden Daten gespeichert., welche zur Laufzeit verarbeitet werden. Dafür bekommt die Variable einen Datentypen. Diese ist abhängig davon, was man speichern möchte. Es gibt insgesamt 15 Datentypen in C# Wertebereich von float • Der kleinste positive Wert, der gespeichert werden kann, ist ca. 1.5 × 10^−45, das bedeutet 1.5 multipliziert mit 10 hoch -45 (also eine…“
 
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Software zur Verwaltung von Daten anpassen|<span class="mw-ui-button mw-ui-progressive">⬅️ Software zur Verwaltung von Daten anpassen</span>]]


= C# Datentypen und Wertebereiche =


Damit ein Programm Daten verarbeiten kann, benötigen Sie Variablen. In Variablen werden Daten gespeichert., welche zur Laufzeit verarbeitet werden. Dafür bekommt die Variable einen Datentypen. Diese ist abhängig davon, was man speichern möchte.
__TOC__
Es gibt insgesamt 15 Datentypen in C#


Wertebereich von float
== Warum braucht man Datentypen? ==
• Der kleinste positive Wert, der gespeichert werden kann, ist ca. 1.5 × 10^−45, das bedeutet 1.5 multipliziert mit 10 hoch -45 (also eine sehr kleine Zahl nahe bei 0).
• Der größte Wert, der gespeichert werden kann, ist ca. 3.4 × 10^38, das bedeutet 3.4 multipliziert mit 10 hoch 38 (also eine sehr große Zahl).


4 Bytes
Damit ein Programm Daten verarbeiten kann, benötigt es Variablen.


8 Bytes sind 64 Bit
Eine Variable ist ein benannter Speicherplatz im Arbeitsspeicher. In dieser Variable wird ein Wert gespeichert, der während der Programmlaufzeit verwendet oder verändert werden kann.


1 Byte oder oft 1 Bit
Jede Variable besitzt einen Datentyp. Der Datentyp legt fest:


Wichtig für Zukunft (Merken):
* welche Art von Wert gespeichert werden darf
Datentypen legen also fest, wie genau eine Reihe von Nullen und Einsen interpretiert wird:
* wie viel Speicher benötigt wird
        • Als Ganzzahl (positiv und negativ),
* wie die gespeicherten Nullen und Einsen interpretiert werden
        • als Kommazahl,
* welche Operationen mit dem Wert möglich sind
        • als Zeichen(kette) und
        • als "wahr/falsch"-Wert


Dafür gibt es die vier gängigen Datentypen: (Im Unterricht)
{{Box|Merke|
Ein Datentyp sagt dem Computer, wie ein gespeicherter Wert zu verstehen ist.
}}


        int
== Grundprinzip ==
        Ganzzahl mit 32 Bit Speicherplatz
        double
        Kommazahl mit 64 Bit Speicherplatz
        string
        Zeichenkette mit 16 Bit Speicherbedarf pro Zeichen, UTF-16-Kodierung
        bool
        wahr/falsch (theoretisch mit 1 Bit Speicherbedarf)


Computer speichern Daten intern als Bitfolgen, also als Reihen aus Nullen und Einsen.


Wie sieht z.B. die Zahl (bzw. das Zeichen) 3 als Bitfolge in den jeweiligen Datentypen aus? (Grund warum man int und double nicht vermischen darf)
Ein und dieselbe Bitfolge kann je nach Datentyp unterschiedlich interpretiert werden:


Datentyp Wert Darstellung auf Bitebene
* als Ganzzahl
int 3 00000000 00000000 00000000 00000011
* als Kommazahl
double 3.0 01000000 00001000 00000000 00000000 00000000 00000000 00000000 00000000
* als Zeichen
string "3" 00000000 00110011
* als Text
bool - (nicht darstellbar, weil nur wahr und falsch gespeichert werden können!) Ggf. 1 Bit oder 1 Byte
* als Wahrheitswert
 
{{Box|Info|
Deshalb dürfen Datentypen nicht beliebig vermischt werden. Ein <code>int</code> und ein <code>double</code> können zwar beide Zahlen darstellen, sie werden intern aber unterschiedlich gespeichert.
}}
 
== Ganze Zahlen ==
 
Ganze Zahlen sind Zahlen ohne Nachkommastellen.
 
{| class="wikitable"
! Datentyp
! Wertebereich
! Variablengröße
|-
| <code>int</code>
| -2.147.483.648 bis 2.147.483.647
| Ganze 32-Bit-Zahl mit Vorzeichen
|-
| <code>long</code>
| -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807
| Ganze 64-Bit-Zahl mit Vorzeichen
|-
| <code>byte</code>
| 0 bis 255
| Ganze 8-Bit-Zahl ohne Vorzeichen
|-
| <code>sbyte</code>
| -128 bis 127
| Ganze 8-Bit-Zahl mit Vorzeichen
|-
| <code>char</code>
| U+0000 bis U+FFFF
| 16-Bit-Unicode-Zeichen
|-
| <code>short</code>
| -32.768 bis 32.767
| Ganze 16-Bit-Zahl mit Vorzeichen
|-
| <code>ushort</code>
| 0 bis 65.535
| Ganze 16-Bit-Zahl ohne Vorzeichen
|-
| <code>uint</code>
| 0 bis 4.294.967.295
| Vorzeichenlose 32-Bit-Ganzzahl
|-
| <code>ulong</code>
| 0 bis 18.446.744.073.709.551.615
| Vorzeichenlose 64-Bit-Ganzzahl
|}
 
{{Box|Merke|
<code>int</code> ist der Standard-Datentyp für ganze Zahlen in C#.
}}
 
== Gleitkommazahlen ==
 
Gleitkommazahlen speichern Zahlen mit Nachkommastellen.
 
{| class="wikitable"
! Datentyp
! Wertebereich
! Genauigkeit / Größe
|-
| <code>float</code>
| ungefähr ±1,5 × 10<sup>-45</sup> bis ±3,4 × 10<sup>38</sup>
| ca. 7 Stellen / 4 Byte
|-
| <code>double</code>
| ungefähr ±5,0 × 10<sup>-324</sup> bis ±1,7 × 10<sup>308</sup>
| ca. 15 bis 16 Stellen / 8 Byte
|}
 
== Wertebereich von float ==
 
Der Datentyp <code>float</code> kann sehr kleine und sehr große Kommazahlen speichern.
 
* Der kleinste positive Wert liegt ungefähr bei <code>1,5 × 10^-45</code>.
* Das bedeutet: 1,5 multipliziert mit 10 hoch -45.
* Der größte Wert liegt ungefähr bei <code>3,4 × 10^38</code>.
* Das bedeutet: 3,4 multipliziert mit 10 hoch 38.
 
{{Box|Achtung|
<code>float</code> und <code>double</code> sind nicht für exakte Geldbeträge geeignet, weil Rundungsfehler auftreten können.
}}
 
== Fixkommazahlen ==
 
Für besonders genaue Dezimalzahlen gibt es den Datentyp <code>decimal</code>.
 
{| class="wikitable"
! Datentyp
! Wertebereich
! Verwendung
|-
| <code>decimal</code>
| ungefähr ±7,9 × 10<sup>28</sup>
| Geeignet für Geldbeträge und genaue Dezimalwerte
|}
 
== Sonstige Datentypen ==
 
{| class="wikitable"
! Datentyp
! Wertebereich / Bedeutung
! Erklärung
|-
| <code>bool</code>
| <code>true</code> oder <code>false</code>
| Wahrheitswert
|-
| <code>char</code>
| Unicode-Zeichen
| Einzelnes Zeichen
|-
| <code>string</code>
| Zeichenkette
| Text aus mehreren Zeichen
|}
 
== Vier wichtige Datentypen im Unterricht ==
 
{| class="wikitable"
! Datentyp
! Bedeutung
|-
| <code>int</code>
| Ganzzahl mit 32 Bit Speicherplatz
|-
| <code>double</code>
| Kommazahl mit 64 Bit Speicherplatz
|-
| <code>string</code>
| Zeichenkette mit 16 Bit Speicherbedarf pro Zeichen, UTF-16-Kodierung
|-
| <code>bool</code>
| Wahr/Falsch-Wert
|}
 
== Beispiel: Unterschiedliche Darstellung der Zahl 3 ==
 
Die Zahl bzw. das Zeichen <code>3</code> kann je nach Datentyp unterschiedlich gespeichert werden.
 
{| class="wikitable"
! Datentyp
! Wert
! Darstellung auf Bitebene
|-
| <code>int</code>
| <code>3</code>
| <code>00000000 00000000 00000000 00000011</code>
|-
| <code>double</code>
| <code>3.0</code>
| <code>01000000 00001000 00000000 00000000 00000000 00000000 00000000 00000000</code>
|-
| <code>string</code>
| <code>"3"</code>
| <code>00000000 00110011</code>
|-
| <code>bool</code>
| -
| Nicht als Zahl 3 darstellbar, da <code>bool</code> nur <code>true</code> oder <code>false</code> speichern kann.
|}
 
{{Box|Merke|
Der Wert <code>3</code>, der Wert <code>3.0</code> und der Text <code>"3"</code> sehen ähnlich aus, sind aber unterschiedliche Datentypen.
}}
 
== Beispiel in C# ==
 
<syntaxhighlight lang="csharp">
int ganzeZahl = 3;
double kommaZahl = 3.0;
string text = "3";
bool wahrheitswert = true;
 
Console.WriteLine(ganzeZahl);
Console.WriteLine(kommaZahl);
Console.WriteLine(text);
Console.WriteLine(wahrheitswert);
</syntaxhighlight>
 
== Typische Fehler ==
 
=== Fehler 1: Text und Zahl verwechseln ===
 
<syntaxhighlight lang="csharp">
int zahl = "3";
</syntaxhighlight>
 
Dieser Code ist falsch, weil <code>"3"</code> ein Text ist.
 
Richtig wäre:
 
<syntaxhighlight lang="csharp">
int zahl = 3;
</syntaxhighlight>
 
=== Fehler 2: Kommazahl in int speichern ===
 
<syntaxhighlight lang="csharp">
int zahl = 3.5;
</syntaxhighlight>
 
Dieser Code ist falsch, weil <code>int</code> keine Nachkommastellen speichern kann.
 
Richtig wäre:
 
<syntaxhighlight lang="csharp">
double zahl = 3.5;
</syntaxhighlight>
 
=== Fehler 3: bool falsch verwenden ===
 
<syntaxhighlight lang="csharp">
bool wert = 3;
</syntaxhighlight>
 
Dieser Code ist falsch, weil <code>bool</code> nur <code>true</code> oder <code>false</code> speichern kann.
 
Richtig wäre:
 
<syntaxhighlight lang="csharp">
bool wert = true;
</syntaxhighlight>
 
== Zusammenfassung ==
 
Datentypen legen fest, wie Daten gespeichert und interpretiert werden.
 
Die wichtigsten Grundtypen sind:
 
* <code>int</code> für ganze Zahlen
* <code>double</code> für Kommazahlen
* <code>string</code> für Texte
* <code>bool</code> für Wahrheitswerte
 
{{Box|Prüfungstipp|
Merke dir besonders den Unterschied zwischen <code>3</code>, <code>3.0</code> und <code>"3"</code>. 
Sie sehen ähnlich aus, gehören aber zu unterschiedlichen Datentypen.
}}
 
[[Kategorie:CSharp]]
[[Kategorie:Programmierung]]
[[Kategorie:FISI]]
 
== Aufgaben ==
 
[[Aufgaben|<span class="mw-ui-button mw-ui-progressive">⬅️ Aufgaben</span>]]

Aktuelle Version vom 28. Mai 2026, 10:28 Uhr

⬅️ Software zur Verwaltung von Daten anpassen

C# Datentypen und Wertebereiche

Warum braucht man Datentypen?

Damit ein Programm Daten verarbeiten kann, benötigt es Variablen.

Eine Variable ist ein benannter Speicherplatz im Arbeitsspeicher. In dieser Variable wird ein Wert gespeichert, der während der Programmlaufzeit verwendet oder verändert werden kann.

Jede Variable besitzt einen Datentyp. Der Datentyp legt fest:

  • welche Art von Wert gespeichert werden darf
  • wie viel Speicher benötigt wird
  • wie die gespeicherten Nullen und Einsen interpretiert werden
  • welche Operationen mit dem Wert möglich sind
Hinweis
   Merke

Grundprinzip

Computer speichern Daten intern als Bitfolgen, also als Reihen aus Nullen und Einsen.

Ein und dieselbe Bitfolge kann je nach Datentyp unterschiedlich interpretiert werden:

  • als Ganzzahl
  • als Kommazahl
  • als Zeichen
  • als Text
  • als Wahrheitswert
Hinweis
   Info

Ganze Zahlen

Ganze Zahlen sind Zahlen ohne Nachkommastellen.

Datentyp Wertebereich Variablengröße
int -2.147.483.648 bis 2.147.483.647 Ganze 32-Bit-Zahl mit Vorzeichen
long -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 Ganze 64-Bit-Zahl mit Vorzeichen
byte 0 bis 255 Ganze 8-Bit-Zahl ohne Vorzeichen
sbyte -128 bis 127 Ganze 8-Bit-Zahl mit Vorzeichen
char U+0000 bis U+FFFF 16-Bit-Unicode-Zeichen
short -32.768 bis 32.767 Ganze 16-Bit-Zahl mit Vorzeichen
ushort 0 bis 65.535 Ganze 16-Bit-Zahl ohne Vorzeichen
uint 0 bis 4.294.967.295 Vorzeichenlose 32-Bit-Ganzzahl
ulong 0 bis 18.446.744.073.709.551.615 Vorzeichenlose 64-Bit-Ganzzahl
Hinweis
   Merke

Gleitkommazahlen

Gleitkommazahlen speichern Zahlen mit Nachkommastellen.

Datentyp Wertebereich Genauigkeit / Größe
float ungefähr ±1,5 × 10-45 bis ±3,4 × 1038 ca. 7 Stellen / 4 Byte
double ungefähr ±5,0 × 10-324 bis ±1,7 × 10308 ca. 15 bis 16 Stellen / 8 Byte

Wertebereich von float

Der Datentyp float kann sehr kleine und sehr große Kommazahlen speichern.

  • Der kleinste positive Wert liegt ungefähr bei 1,5 × 10^-45.
  • Das bedeutet: 1,5 multipliziert mit 10 hoch -45.
  • Der größte Wert liegt ungefähr bei 3,4 × 10^38.
  • Das bedeutet: 3,4 multipliziert mit 10 hoch 38.
Hinweis
   Achtung

Fixkommazahlen

Für besonders genaue Dezimalzahlen gibt es den Datentyp decimal.

Datentyp Wertebereich Verwendung
decimal ungefähr ±7,9 × 1028 Geeignet für Geldbeträge und genaue Dezimalwerte

Sonstige Datentypen

Datentyp Wertebereich / Bedeutung Erklärung
bool true oder false Wahrheitswert
char Unicode-Zeichen Einzelnes Zeichen
string Zeichenkette Text aus mehreren Zeichen

Vier wichtige Datentypen im Unterricht

Datentyp Bedeutung
int Ganzzahl mit 32 Bit Speicherplatz
double Kommazahl mit 64 Bit Speicherplatz
string Zeichenkette mit 16 Bit Speicherbedarf pro Zeichen, UTF-16-Kodierung
bool Wahr/Falsch-Wert

Beispiel: Unterschiedliche Darstellung der Zahl 3

Die Zahl bzw. das Zeichen 3 kann je nach Datentyp unterschiedlich gespeichert werden.

Datentyp Wert Darstellung auf Bitebene
int 3 00000000 00000000 00000000 00000011
double 3.0 01000000 00001000 00000000 00000000 00000000 00000000 00000000 00000000
string "3" 00000000 00110011
bool - Nicht als Zahl 3 darstellbar, da bool nur true oder false speichern kann.
Hinweis
   Merke

Beispiel in C#

int ganzeZahl = 3;
double kommaZahl = 3.0;
string text = "3";
bool wahrheitswert = true;

Console.WriteLine(ganzeZahl);
Console.WriteLine(kommaZahl);
Console.WriteLine(text);
Console.WriteLine(wahrheitswert);

Typische Fehler

Fehler 1: Text und Zahl verwechseln

int zahl = "3";

Dieser Code ist falsch, weil "3" ein Text ist.

Richtig wäre:

int zahl = 3;

Fehler 2: Kommazahl in int speichern

int zahl = 3.5;

Dieser Code ist falsch, weil int keine Nachkommastellen speichern kann.

Richtig wäre:

double zahl = 3.5;

Fehler 3: bool falsch verwenden

bool wert = 3;

Dieser Code ist falsch, weil bool nur true oder false speichern kann.

Richtig wäre:

bool wert = true;

Zusammenfassung

Datentypen legen fest, wie Daten gespeichert und interpretiert werden.

Die wichtigsten Grundtypen sind:

  • int für ganze Zahlen
  • double für Kommazahlen
  • string für Texte
  • bool für Wahrheitswerte
Hinweis
   Prüfungstipp

Aufgaben

⬅️ Aufgaben