Jägermeisters C# Lern-Thread

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Jägermeisters C# Lern-Thread

    Schönen guten Tag miteinander.
    Habe mir nun das Lernvideo von Video2Brain geholt um endlich mal durch zu starten. Um einzelne Frage Threads zu vermeiden, hab ich mir gedacht ein Thread für alles anfallende zu öffnen, wenn es denn genehmigt ist.

    Hätte da gleich mal eine Frage zum deklarieren von Zahlen. Wieso gibt es verschiedene Typen wie int,long,dec usw.? 1ner für alle Positiven und Negativen und 1nen für alle mit Kommastelle.
  • Für unterschiedliche Wertebereiche gibt es unterschiedliche Datentypen. Das hängt ganz einfach damit zusammen, dass primitive Datentypen eine feste Länge im Speicher haben und es Platzverschwendung wäre, Zahlen die zwischen 0..255 liegen 4 Byte im Speicher zu verschwenden, wenn ein Byte dafür ausreicht. Durch Angabe des Datentyps sagt man den Computer also, wieviel Platz im Speicher reserviert werden soll und wie die Zahlen die an der Stelle zu lesen sind (signed/unsigned, int/float,...)
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Es spielt keine Rolle wenn du in einem Programm 10, 20 oder meinetwegen 1000 Variablen hast. Wenn jetzt aber große Anwendungen Millionen von Werten speichern müssen sieht die Sache schon ganz anders aus ;)
    Der Arbeitsspeicher ist aber nicht das einzige Problem: Rechnen mit unterschiedlich großen Datentypen kann auch unterscheidlich lange dauern. Wenn ein Prozessor beispielsweise eine 32Bit-breite Integereinheit hat kann diese Berechnungen mit 32bit-ints sehr schnell abarbeiten. Wenn du in deinem Programm aber jetzt mit 64bit-Integern arbeitest brauchst du um eine 64Bit Multiplikation durchzuführen 4 einzelne 32-Bit Multiplikationen, also mindestens 4mal solange. Das spielt bei einzelnen Multiplikationen wiederum keine Rolle aber es ist wieder ein Problem wenn du Millionen von Multiplikationen durchführen willst.
  • Es bleibt ja nicht bei ein paar deklarationen. Du packst einfach alles in Variablen, die abhängig von ihrer Größe auch unterschiedlich schnell verarbeitet werden. Und du wirst ja nicht immer nur ein Programm ausführen,...
    Es ist zwar heute mehr Geschwindigkeit vorhanden, aber das heißt nicht, dass man jetzt die Sau raus lassen. Denn spätestes in größeren Projekten wirst du andernfalls schnell auf Geschwindigkeitsprobleme stoßen.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Rondrer schrieb:


    Der Arbeitsspeicher ist aber nicht das einzige Problem: Rechnen mit unterschiedlich großen Datentypen kann auch unterscheidlich lange dauern. Wenn ein Prozessor beispielsweise eine 32Bit-breite Integereinheit hat kann diese Berechnungen mit 32bit-ints sehr schnell abarbeiten. Wenn du in deinem Programm aber jetzt mit 64bit-Integern arbeitest brauchst du um eine 64Bit Multiplikation durchzuführen 4 einzelne 32-Bit Multiplikationen, also mindestens 4mal solange. Das spielt bei einzelnen Multiplikationen wiederum keine Rolle aber es ist wieder ein Problem wenn du Millionen von Multiplikationen durchführen willst.


    Noch extremer ist bei Fließkommerdatentypen mit einfacher und doppelter Genauigkeit.

    Außerdem haben Variablentypen auch noch den Sinn, den Programmierer zu Compilezeit schon auf Fehler hinzuweisen (statischer Typcheck). Deswegen gibt es für quasi gleichgroße Datentypen auch unterschiedliche Datentypen (Int/Pointer, Char/Byte, ...). Es gibt schwach typisierte/untypisierte Sprachen bei denen man keinen Datentypen für Variablen angeben muss oder ihn nachträglich ändern kann, allerdings haben die den Ruf weg, dass man damit schnell schmutzigen Code erzeugen kann (es handelt sich aber meistens auch um Interpretersprachen).
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]