Maison  >  Article  >  développement back-end  >  golang uint en octet

golang uint en octet

王林
王林original
2023-05-10 19:48:351207parcourir

Pendant le processus de développement de Golang, nous devons souvent convertir le type entier en type octet pour la transmission et le stockage sous forme de tableau d'octets. Parmi eux, le type uint est l’un des types entiers les plus couramment utilisés. Par conséquent, il est très important que les développeurs Golang maîtrisent la méthode de conversion du type uint en octets. Cet article présentera brièvement comment convertir le type uint en type octet dans Golang.

1. Convertir uint en type d'octet

Tout d'abord, nous devons comprendre les méthodes de stockage sous-jacentes du type uint et du type d'octet. Dans Golang, le type uint est un entier non signé, occupant 8 octets d'espace mémoire ; et le type octet est un type alias, essentiellement un type entier non signé de 8 bits. Par conséquent, pour convertir le type uint en type octet, vous devez intercepter les 8 bits inférieurs du type uint, c'est-à-dire convertir le type uint en type octet de 8 bits.

Dans Golang, vous pouvez convertir le type uint en type octet via l'assertion de type. La méthode spécifique est la suivante :

var n uint64 = 256
var b byte
b = byte(n)
fmt.Println(b) // 输出 0

Dans le code ci-dessus, la variable n représente la valeur de type uint à convertir et la variable b représente la valeur de type octet convertie. Dans la troisième ligne de code, utilisez byte(n) pour l'assertion de type et convertissez n en type d'octet. Puisque la valeur de n est 256, soit 1 000 000 000 en binaire, elle dépasse la plage de valeurs du type octet (la plage de valeurs du type octet est de 0 à 255), donc seuls les 8 bits inférieurs de n sont pris, et le le résultat est 0.

Il convient de noter que le type uint peut être n'importe quel type entier non signé, tel que uint8, uint16, uint32, uint64. Lors de la conversion du type uint en type octet, vous devez le convertir en type uint8, puis effectuer une assertion de type. Le code spécifique est le suivant :

var n uint16 = 256
var b byte
b = uint8(n)
fmt.Println(b) // 输出 0

Dans le code ci-dessus, la variable n est de type uint16. Puisqu'il doit être converti en type octet, il doit d'abord être converti en type uint8, puis l'assertion de type est effectuée.

2. Exemple de démonstration

Ci-dessous, je vais montrer un exemple pratique pour montrer comment convertir le type uint en type octet.

package mainimport (    "fmt"    "encoding/binary")func main() {    var n uint16 = 258    var b [2]byte    binary.LittleEndian.PutUint16(b[:], n)    fmt.Println(b) // 输出 [2 1]}

Dans le code ci-dessus, la variable n est de type uint16 et la valeur est 258. La variable b est un tableau d'octets de longueur 2, utilisé pour stocker les données d'octets converties. Dans la 4ème ligne de code, utilisez la fonction binaire.LittleEndian.PutUint16() pour convertir les données de type Uint16 n en données de type octet et enregistrez le résultat dans le tableau b. Le premier paramètre b[:] représente tous les éléments du tableau d'octets. Ici, nous utilisons le petit-boutiste pour la sérialisation des octets, c'est-à-dire que l'octet de poids faible est stocké au début et l'octet de poids fort est stocké à l'arrière. Puisque la représentation binaire de 258 est 0000000100000010, l'octet de poids faible est 00000010 et l'octet de poids fort est 00000001, le résultat converti est [2,1].

3. Résumé

Grâce à l'introduction ci-dessus, nous avons découvert la méthode de conversion du type uint en type octet dans Golang. Dans le processus de développement actuel, nous devons souvent transmettre et stocker des données au niveau des octets, il est donc très utile de maîtriser cette méthode. Il convient de noter que lors de la conversion de type, l'ordre des octets doit être pris en compte pour éviter les erreurs lors de la transmission et du stockage des données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Utilisation de la carte GolangArticle suivant:Utilisation de la carte Golang