2016-03-31 7 views
-4

Kann jemand die Bedeutung dieser Codezeile erklären?Integer Part Hack für die schnelle umgekehrte Quadratwurzel

i = * (long *) &y; 

Der Code stammt aus Wikipedia, Fast inverse square root. Gibt es eine Möglichkeit, das Gleiche mit Python zu tun? warum

+2

'& y' gegossen wird ein' long * 'Zeiger und dereferenziert. Das Ergebnis wird in "i" gespeichert. Ich kann das in Python nicht machen. –

+0

Sie könnten das selbe mit dem ['struct' Modul] (https://docs.python.org/3.5/library/struct.html) erreichen:' i = struct.unpack ('l', struct.pack ('f', y)) ', aber die tatsächliche Zeile hängt davon ab, wie die Werte im Speicher dargestellt werden - was man mit python nicht leicht erreichen kann. – RoadieRich

Antwort

0

In Python nicht nur tun x**-1/2 oder x**-.5