Typ der Variablen bestimmen < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:03 Di 27.10.2009 | Autor: | az118 |
Aufgabe | Nehmen Sie an, Sie schreiben ein Programm in C. In einer Variable welchen Typs würden Sie jeweils die folgenden Werte speichern?
a.) 3.24, 12.3, -188.2, 1, 0.01
b.) 0, -1, -2, -3, ...
c.) 12, [mm] \bruch{1}{2^{100}}, 10^{42} [/mm] |
Hallo, also ich fange gerade erst mit dem Programmieren an und habe deswegen noch keinen richtigen Plan.
Ich dachte da a.) gebrochene Zahlen sind = real
b.) = integer
c.) ??
wär nett wenn jemand helfen kann.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:55 Di 27.10.2009 | Autor: | DJ-L |
Hallo,
Also erstmal heißen die Datentypen in C nicht real sondern float bzw. nicht integer sondern int ;)
zu a)
Da es sich hier um reelle Zahlen zu handeln scheint, würden sich hier die Typen float oder double anbieten.
double hat, wie der Name schon sagt, eine doppelte Genauigkeit von 64-Bit. Prinzipiell würden aber für die Zahlenbeispiele float's ausreichen.
zu b)
Da es sich hier um negative ganze Zahlen handelt, wird man wohl zu int oder long greifen.
long sind auf 64-Bit Systemen 64 Bit lang, auf 32-Bit Systemen allerdings genauso lang, wie int. Für die gegeben Zahlenbeispiele würden int's ausreichen.
Wären ausschließlich positive Zahlen gegeben, würde man zu unsigned greifen, da man mit diesem 1-Bit mehr hat und somit einen größeren Wertebereich abdecken kann.
zu c)
Hier würde sich double anbieten. Das hat etwas mit dem Aufbau von Fließkommazahlen zu tun:
Fließkommazahlen liegen im folgenden Bitmuster im (z.B. Speicher) vor, bei double:
[1 Bit Vorzeichen][11 Bit Exponent (zur Basis 2)][52 Bit Mantisse]
Der daraus zu interpretierende Wert berechnet sich wie folgt:
[mm](-1)^{Vorzeichen} \cdot (1.0 + Mantisse \cdot 2^{-52}) \cdot 2^{Exponent - 1023}[/mm]Für die Zahlenbeispiele ergibt sich dann:
1. Vorzeichen = 0, Mantisse != 0, Exponent > 1023
2. Vorzeichen = 0, Mantisse = 0, Exponent = 923
3. Vorzeichen = 0, Mantisse != 0, Exponent > 1023
Wie man also sieht, können mit Fließkommazahlen (Floating Points) unter Verzicht der Genauigkeit (vergleichsweise kleine Mantisse) mithilfe des Exponenten sehr große oder sehr kleine Zahlen dargestellt werden.
Ich hoffe, dass ich helfen konnte,
Dirk.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:10 Di 27.10.2009 | Autor: | az118 |
Oh man, da muss ich ja noch viel lernen. :)
Dankeschön.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:20 Di 27.10.2009 | Autor: | DJ-L |
Keine Ursache =)
naja, muss man vielleicht auch nicht unbedingt alles wissen, solange man nicht an die Grenzen der Datentypen geht ;)
Dirk.
|
|
|
|