128 Bit oder 256 Bit schlüssel errechnen mittels Hash funktion
-
Hallo
oder um es anders zu sagen : Die Casts an sich werden nichts verlangsamen. Alle Casts bis auf den dynamic_cast werden ausschließlich zur Compile Time ausgewertet, und haben zur Laufzeit keinen Einfluß mehr.
bis bald
akari
-
Alle Casts bis auf den dynamic_cast werden ausschließlich zur Compile Time ausgewertet, und haben zur Laufzeit keinen Einfluß mehr.
Falsch.
-
Hallo
@ nöö : und kannst du deine "Kritik" auch begründen?
bis bald
akari
-
begründung?
edit: Akari war schneller..scheiße....prf ist also langsam und SHA auch? *grmpf....vielleicht sollte ich doch mit bitsets irgendwie arbeiten.....ach die welt wär doch so schön

-
akari: denk doch mal nur an 'nen einfachen cast von 'int' nach 'double' oder umgekehrt. das sind ganz andere formate, das muss zur laufzeit umgerechnet werden...
btw: eigentlich kommen nur casts von pointer nach pointer ohne berechnungen aus. naja, mit ausnahe dieses c++-geraffels 'dynamic_blah<p*>', das die ganze vererbungsliste durchrattern muss.
-
Hallo
Nein, es wird nichts gerechnet. Sondern der Compiler wird gezwungen, den Speicherbereich des Arguments wie vom Typ des Cast-Ziels zu behandeln. Das kann auch zu Speicherfehlzugriffen führen. Zum Beispiel so
unsigned short test = 10; unsigned int test2 = std::numeric_limits<unsigned int>().max(); reinterpret_cast<unsigned int>(test) = test2;Hier wird der Compiler gezwungen, die 2 Bytes des shorts mit den 4 Bytes des ints zu überschreiben, was demzufolge auch unzulässig ist.
Casts selber (bis auf den dynamic_cast) verändern gar nichts./Edit :
Ein guter Compiler läßt mein Beispiel gar nicht durch. Aber so kompilierts, und verursacht trotzdem Speicherfehlerunsigned short test = 10; unsigned int test2 = std::numeric_limits<unsigned int>().max(); *(reinterpret_cast<unsigned int*>(&test)) = test2;bis bald
akari
-
probier doch mal sowas:
int main (int a, char **b) { double d = (double)a; // c++ casts auch mal probieren std::cout << d << std::endl; }und schau dir das disassembly an.
ich könnte wetten, dass zum konvertieren eine versteckte funktion aufgerufen wird...
-
Hallo
ja, die "versteckte Funktion" ist der Konstruktor von double.
Egal was aus dem Cast von a kommt, durch die Dekalration von double wird auf jedenfall ein gültiges double initialisiert.bis bald
akari
-
akari schrieb:
Egal was aus dem Cast von a kommt,
eben nicht. der inhalt von 'd' ist davon abhängig.
-
Hallo
okay, dann zieh ich meine erste Aussage zurück. Und grenze sie auf Pointer ein.
bis bald
akari
-
hmm.jetzt bin ich verwirrt - könnte jemand nochmal kurz zusammenfassen was unser ergebnis nun ist? Danke :p