Problème :
Conversion de chaînes hexadécimales (par exemple, "0xC40C5253") en les valeurs à virgule flottante utilisant la conversion IEEE-754 se sont révélées difficiles avec le Fonction strconv.ParseFloat. Existe-t-il une approche alternative ?
Réponse :
Pour convertir efficacement des chaînes hexadécimales en valeurs flottantes, envisagez les étapes suivantes :
Voici un exemple d'extrait de code qui illustre ces étapes :
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) }
Remarque :
Alternativement, le package mathématique fournit une fonction math.Float32frombits() intégrée pour convertir les valeurs uint32 en float32, qui peut être utilisé à la place du package non sécurisé :
f := math.Float32frombits(n2)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!