Conversion d'une tranche d'octets en Float64 dans GoLang
Dans GoLang, il peut être nécessaire de convertir une tranche d'octets, représentée par []uint8, dans un float64. Cependant, trouver une solution simple en ligne peut s’avérer difficile. Tenter de convertir la tranche d'octets en chaîne, puis en float64 peut entraîner une perte de données et des valeurs incorrectes.
Pour résoudre ce problème, les opérations binaires et les fonctions mathématiques fournissent une méthode efficace pour convertir les tranches d'octets en float64 :
package main import ( "encoding/binary" "fmt" "math" ) // Convert []uint8 to float64 func Float64frombytes(bytes []byte) float64 { bits := binary.LittleEndian.Uint64(bytes) float := math.Float64frombits(bits) return float } // Convert float64 to []uint8 func Float64bytes(float float64) []byte { bits := math.Float64bits(float) bytes := make([]byte, 8) binary.LittleEndian.PutUint64(bytes, bits) return bytes } func main() { // Example: Converting math.Pi to byte slice and back to float64 bytes := Float64bytes(math.Pi) fmt.Println(bytes) float := Float64frombytes(bytes) fmt.Println(float) }
Sortie :
[24 45 68 84 251 33 9 64] 3.141592653589793
Cet extrait de code montre comment convertir une tranche d'octets en une float64 en utilisant le package binaire.LittleEndian et la fonction math.Float64frombits. À l'inverse, il montre également comment reconvertir un float64 en tranche d'octets à l'aide des fonctions math.Float64bits et binaire.LittleEndian.PutUint64.
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!