Problem:
Konvertieren von Hex-Strings (z. B. „0xC40C5253“) in Die Konvertierung von Gleitkommawerten mithilfe der IEEE-754-Konvertierung hat sich als Herausforderung erwiesen strconv.ParseFloat-Funktion. Gibt es einen alternativen Ansatz?
Antwort:
Um Hex-Strings effektiv in Float-Werte umzuwandeln, beachten Sie die folgenden Schritte:
Hier ist ein Beispiel-Codeausschnitt, der diese Schritte demonstriert:
import ( "fmt" "strconv" "unsafe" ) func main() { s := "C40C5253" n, err := strconv.ParseUint(s, 16, 32) if err != nil { panic(err) } n2 := uint32(n) f := *(*float32)(unsafe.Pointer(&n2)) fmt.Println(f) }
Hinweis:
Alternativ das Mathe-Paket bietet eine integrierte math.Float32frombits()-Funktion zum Konvertieren von uint32-Werten in float32, das anstelle des unsicheren Pakets verwendet werden kann:
f := math.Float32frombits(n2)
Das obige ist der detaillierte Inhalt vonWie kann ich Hex-Strings in Go effizient in IEEE-754-Gleitkommawerte konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!