Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Datentyp

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.11.2006, 03:08 Uhr
~Der Neuling
Gast


Hallo Leute,

ich brauch Eure Hilfe.

Ich soll den kleinst möglichen Datentyp auswählen der folgenden Wertbereich abdeckt.

5.66 * 1040 bis 5.66 * 1050

1040 ist doch die Zahl 10 mit 40 Nullen?
Oder mach ich ein Gedankenfehler?

Wie kann ich diesen Wert einer Variable übergeben um das zu Testen welcher Datentyp der Beste ist?

Ich muss das unbedingt in mein Kopf kriegen.

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.11.2006, 13:03 Uhr
Eroli



Hier mal eine kleine Übersicht:

Datentyp Beschreibung Größe Wertebereich
int Ganzzahlen 32Bit -2^31 bis (2^31)-1
long Ganzzahlen 64Bit -2^63 bis (2^63)-1
float Gleitkommazahl 32Bit +(-)3,4*10^308
double Gleitkommazahl 63Bit +(-)1,7*10^308 (doppelt so genau wie float)
decimal Währung 128Bit 28 Signifikante Stellen
string Zeichenkette 16Bit je Zeichen
char einzelnes Zeichen 16Bit 0 bis (2^16)-1
bool Booleanscher Wert 8Bit true oder false



Hoffe du kannst damit etwas anfangen!


Datentyp || Beschreibung || Größe || Wertebereich
int || Ganzzahlen || 32Bit || -2^31 bis (2^31)-1
long || Ganzzahlen || 64Bit || -2^63 bis (2^63)-1
float || Gleitkommazahl || 32Bit || +(-)3,4*10^308
double || Gleitkommazahl || 64Bit || +(-)1,7*10^308 (doppelt so genau wie float)
decimal || Währung || 128Bit || 28 Signifikante Stellen
string || Zeichenkette || 16Bit je Zeichen
char || einzelnes Zeichen || 16Bit || 0 bis (2^16)-1
bool || Booleanscher Wert || 8Bit || true oder false


Egal, ich kriege diesen Beitrag einfach nicht anständig formatiert. sry!

Dieser Post wurde am 12.11.2006 um 13:05 Uhr von Eroli editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.11.2006, 13:31 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
so wie das geschieben ist, liegen die Werte zwischen 588,64 und 5943 => float.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 12.11.2006 um 13:35 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.11.2006, 15:11 Uhr
~Der Neuling
Gast


Danke Leute,


5.66 * 1040 bis 5.66 * 1050

Heißt 5.66 * 10 die 40 ist diesem Beispiel ist Hoch gestellt.
Kann man hier nicht so darstellen.
5.66 * 10 die 50 ist wieder hochgestellt.

Ich denke ich nehme den Double, weil doch die 10 hoch 40 heißt doch.
10 und dann 40 Nullen oder sehe ich das Falsch??

Wenn ich das in meine Kopf kriege wie die Zahl geschrieben wird und ich sie in eine Variable rengeklopft kriege, dann kann ich das erst testen welcher Typ richtig dafür ist.

Aber ich denke ich mach einen Gedankenfehler bei der 10 hoch 40 mit der 10 und 40 Nullen.

Hoffe mir kann da mal jemand auf's Pferd helfen.

Danke Leute
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.11.2006, 16:31 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Wieso hat ein bool 8bit?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.11.2006, 16:42 Uhr
Eroli



Laut meinem Buch "Visual C# Schritt für Schritt" ist das so!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.11.2006, 16:54 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
also:

Zitat von ~Der Neuling:
Danke Leute,
5.66 * 10^40 bis 5.66 *10^50


Das kannst Du doch leicht prüfen:

C++:
float fMax=float.MaxValue;
double dMax=double.MaxValue;
float f1 = 5.66f * (float) Math.Pow(10,40f);
float f2 = 5.66f * (float) Math.Pow(10,50f);
double d1 = 5.66 * Math.Pow(10,40);
double d2 = 5.66 * Math.Pow(10,50);
Debug.WriteLine(string.Format("Float MaxValue: {0} Double MaxValue: {1}, Ergebnis von f1: {2}, Ergebnis von f2: {3}, Ergebnis von d1: {4}, Ergebnis von d2: {5}",fMax, dMax, f1, f2, d1, d2));


Hoffe hab mich nicht vertippt.
Dann sollte inetwa folgenden Ausgabe kommen:
Float MaxValue: 3,402823E+38 Double MaxValue: 1,79769313486232E+308, Ergebnis von f1: +unendlich, Ergebnis von f2: +unendlich, Ergebnis von d1: 5,66E+40, Ergebnis von d2: 5,66E+50
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.11.2006, 21:12 Uhr
~Der Neuling
Gast



C++:
Wieso hat ein bool 8bit?



Das kann ich mir auch nicht erklären, dass ein bool 8bit hat?
Es wird je nur true oder false dargestellt. Oder eben 0 oder 1.
Vielleicht setzte er aber noch den true und false Wert in einem String um, um den Wert darzustellen?!

Uwe, habe den Quelltext getestet.
Kannst Du mir bitte sagen für welche Plattform der Quelltext ist?

Weil in der C++ Konsole sowie in C++/CLI Konsole werde ich da nix.

Habe in C++/CLI natürlich die letzte Zeile angeglichen.

Aber der Ausgabe nach, die Du noch angezeigt hast, kriegt eh nur der Double das gewupt.

Das ist nämlich eine Schulaufgabe und ich muss das Umsetzen können, wenn der Dozent mich durchleuchtet und ich stammel nur rum ist das nix.

Danke für die Hilfe Leute.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.11.2006, 22:17 Uhr
Uwe
C/C++ Master
(Administrator)



Zitat von ~Der Neuling:

C++:
Wieso hat ein bool 8bit?


Das kann ich mir auch nicht erklären, dass ein bool 8bit hat?


UnmanagedType.Bool Ganzzahl mit 4 Bytes, wobei jeder von 0 verschiedene Wert für TRUE und 0 für FALSE steht. Dies ist das Standardformat eines booleschen Feldes in einer Struktur.

UnmanagedType.U1 Ganzzahl mit 1 Byte, wobei der Wert 1 für TRUE und der Wert 0 für FALSE steht.

UnmanagedType.VariantBool Ganzzahl mit 2 Bytes, wobei der Wert –1 für TRUE und der Wert 0 für FALSE steht. Dies ist das Standardformat eines booleschen Parameters in einer Struktur.

C++:
Console.WriteLine("bool: {0}", Marshal.SizeOf(typeof(bool)));


gibt ergibt demzufolge unter c# 4 byte, da hier bool als int definiert ist.
Unter VC++ dürfte sizeof(bool) 1 byte liefern, sizeof(BOOL) hingegen auch 4 Byte da dieser als int definiert ist (falls ich das noch richtig in Erinnerung hab

C++:
typedef int                 BOOL;
#ifndef FALSE
#define FALSE               0
#endif
#ifndef TRUE
#define TRUE                1
#endif

.
Wenn man aber zu obigen Bsp. unsichere Codeblöcke zulässt

C++:
unsafe private void foo()
{
   Console.WriteLine("bool: {0}", sizeof(bool));
}


Wird 1 Byte ermittelt da UnmanagedType.U1 greift, womit der Autor von Eroli's Buch wieder Recht hat.

Zitat von ~Der Neuling:

Kannst Du mir bitte sagen für welche Plattform der Quelltext ist?


C#!
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 12.11.2006 um 22:55 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.11.2006, 23:23 Uhr
~Der Neuling
Gast



PHP 4:
Wieso hat ein bool 8bit?


Der bool hat in C++/CLI .NET 8 Bits

So steht es in meinen Büchern, hoffe das ist richtig.
In C++ ISO hat bool 1 Byte.

Gut, den Quelltext kann ich so leider nicht auspropieren ohne ihn umzuschreiben, arbeite nämlich unter C++/CLI .NET.


C++:
#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
    Single singleVariable = 0;
    Double doubleVariable = 0;

    Console::WriteLine("Typ\t\t Wert\n");

    Console::WriteLine("{0}\t Wert von {1} bis {2}\n",singleVariable.GetType(),singleVariable.MinValue,singleVariable.MaxValue);
    
    Console::WriteLine("{0}\t Wert von {1} bis {2}\n",doubleVariable.GetType(),doubleVariable.MinValue,doubleVariable.MaxValue);
    
    return 0;
}



Gruß Der Neuling

Danke Jungs für die Hilfe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: