Conversion d'une tranche d'octets "[]uint8" en Float64 dans GoLang
Dans GoLang, la conversion d'une tranche d'octets []uint8 en float64 est une tâche simple. Cet article explore les techniques de cette conversion, abordant le problème selon lequel la conversion en chaîne puis en float64 entraîne une perte de valeur.
Le problème sous-jacent à la solution suggérée est que la conversion de chaîne modifie la valeur sous-jacente de la tranche d'octets. données. Pour résoudre ce problème, nous exploitons le package encoding/binary, qui fournit des méthodes d'encodage et de décodage endian-safe des données binaires.
La fonction Float64frombytes() convertit une tranche d'octets en float64 en interprétant les octets comme un Nombre à virgule flottante IEEE 754 64 bits codé en little-endian. Pour y parvenir, il utilise la fonction binaire.LittleEndian.Uint64() pour convertir les octets en un entier non signé de 64 bits. Ensuite, math.Float64frombits() est utilisé pour convertir l'entier en float64.
À l'inverse, la fonction Float64bytes() convertit un float64 en tranche d'octets en effectuant les opérations inverses. Il récupère la représentation 64 bits du float64 à l'aide de math.Float64bits() et convertit cet entier en tranche d'octets à l'aide de binaire.LittleEndian.PutUint64().
L'exemple GoLang fourni démontre l'utilisation de ces fonctions pour convertir un float64 représentant Pi vers et depuis une tranche d'octets. Le résultat présente efficacement le processus de conversion, confirmant que la valeur d'origine est conservée tout au long des conversions.
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!