Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Könnt ihr mir diese Funktion erklären?

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 ] > 2 <
010
25.10.2006, 17:55 Uhr
(un)wissender
Niveauwart


Ich bin mir sogar ziemlich sicher, dass das undefiniert ist. Habe das in einem C++-Buch gelesen, finde ich bloß gerade nicht.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
25.10.2006, 19:12 Uhr
ao

(Operator)



Zitat von Windalf:
Naja es wird halt nicht jede Zahl sondern nur die gleiche Repräsentation einer Zahl gleich abgebildet... Da ist ja noch nichts "verwerfliches dran"...

Na ja, wenn eine Zahl wie 0.5 verschiedene Hashes liefert, je nach dem, ob sie normalisiert ist (1.0 * 2^-1) oder nicht normalisiert (z.B. 0.25 * 2^1), dann ist schon fraglich, wozu der Hash brauchbar sein soll.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
25.10.2006, 20:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

wozu der Hash brauchbar sein soll.


Das ist aber eine "unakademische" Frage. Pfui Spinne
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
26.10.2006, 00:43 Uhr
~derMond
Gast


Danke für eure große Hilfe.
Naja...um ehrlich zu sein verstehe ich nicht wie diese funktion einen hashwert bildet? Also von der syntax gehts jetzt schon besser aber warum ist denn die darstellung wirklich eindeutig?
Getestet bei mir hab ichs und es ist wirklich so dass 2.99999 und 2.99998 verschiedene werte
haben und bei mehrfacheingabe von zwei "identischen" floats wirklich immer derselbe hash-wert rauskommt. Irgendwie stehe ich da noch auf dem schlauch. Warum wird denn hier geshiftet überhaupt und dann geXORed ?
Womit ich also noch probleme habe ist zu verstehen warum diese vorgehensweise mir eindeutige hash-werte liefert? Ich kann mir das nur durch die Bitrepräsentation von floats erklären (was sonst? ) ?Aber warum der nutzen von 64 Bit? UNd ginge es nicht nur einfach ohne XOR nur return p zu schreiben?

ajajaj

danke für eure geduld
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
26.10.2006, 09:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Stell dir einfach vor du hast 64 bit (einsen und nullen hintereinander stehen)...

jetzt nimmst du einfach die ersten 32 und packst die über die letzten 32. (so wie bei ner schriftlichen addition)

und jetzt addierst du quasi nur das dir der übertrag egal ist also machst nen xor...

1001......0101
0111......0110
macht dann
1110......0011
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
26.10.2006, 19:42 Uhr
~derMond
Gast


Danke....
ich verstehe immer ein klein wenig mehr....
eh kann es sein dass das vregrössern der zahl (auf 64 BIt) dann das shiften und XOR Mit sich selber NUR dazu dient um die Zahl eindeutig zu machen? Also im grunde irgendwie logisch aber ginge das nicht einfacher als über einen reinterpret-cast und ohne shifting?
Wenn ihr meine Frage mit Ja-beantworten könnt.....warum ist es gerade durch das shifting und XOR dass die Zahl eindeutig wird....einfach gottgegeben durch die angewandten Operationen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
26.10.2006, 23:22 Uhr
ao

(Operator)



Zitat von ~derMond:
eh kann es sein dass das vregrössern der zahl (auf 64 BIt) ...

Die wird nicht vergrößert. Der double hat auch schon 64 Bit, auf den meisten Maschinen jedenfalls.

Zitat:
warum ist es gerade durch das shifting und XOR dass die Zahl eindeutig wird

Und ein Hash ist auch nicht eindeutig, siehe hier: http://de.wikipedia.org/wiki/Hash und hier: http://de.wikipedia.org/wiki/Hash-Funktion .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


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: