Wie kann man einfach die Quadratwurzel eines vorzeichenlosen Long Long in C berechnen?

Ich habe eine andere Frage angeschaut (Hier) wo jemand nach einer Möglichkeit gesucht hat, die Quadratwurzel einer 64-Bit-Ganzzahl in einer x86-Assembly zu ermitteln.

Dies stellt sich als sehr einfach heraus. Die Lösung besteht darin, in eine Gleitkommazahl zu konvertieren, den sqrt zu berechnen und dann zurück zu konvertieren.

Ich muss in C etwas sehr Ähnliches tun, aber wenn ich Äquivalente untersuche, stecke ich ein wenig fest. Ich kann nur eine Sqrt-Funktion finden, die im Doppel nimmt. Doubles haben nicht die Genauigkeit, große 64-Bit-Ganzzahlen zu speichern, ohne einen signifikanten Rundungsfehler einzuführen.

Gibt es eine gemeinsame Mathematikbibliothek, die ich verwenden kann, die eine hat?long double sqrt funktion?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage