Stratégies de conversion : []octet en entier dans Go
Conversion de données d'une tranche d'octets ([]octet) en un entier (int ) se produit dans divers scénarios, comme en témoigne la nécessité de transmettre des valeurs numériques via TCP. Cette requête explore les méthodes de conversion disponibles dans Go.
Conversion de []byte en int à l'aide d'encoding/binary
Le package encoding/binary fournit un mécanisme pratique pour convertir entre séquences d'octets et types de données de base. Il prend en charge les conversions pour les types 16, 32 et 64 bits.
L'interface ByteOrder, qui définit le caractère boutien de l'ordre des octets (gros ou petit boutien), joue un rôle crucial dans cette conversion. L'extrait de code suivant montre comment convertir un []byte en un uint64 à l'aide de la fonction ByteOrder.Uint64(), en supposant l'ordre des octets big-endian :
package main import "fmt" import "encoding/binary" func main() { var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244} // 8-byte value represented as []byte data := binary.BigEndian.Uint64(mySlice) fmt.Println(data) // Prints: 18446744073709551615 }
Dans cet exemple, l'instance mySlice []byte représente un entier non signé de 8 octets. La fonction binaire.BigEndian.Uint64() convertit cette séquence d'octets en uint64 en utilisant l'ordre des octets big-endian (qui spécifie que l'octet de poids fort apparaît en premier dans la séquence d'octets).
Remarque : La fonction de conversion dépend du type de données souhaité. Par exemple, binaire.BigEndian.Uint16() serait utilisé pour la conversion en un entier non signé de 16 bits.
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!