Maison  >  Article  >  développement back-end  >  conversion d'octets golang

conversion d'octets golang

WBOY
WBOYoriginal
2023-05-19 10:02:06577parcourir

Le type d'octet dans Golang est un type de données très important, utilisé pour stocker des données binaires de 8 bits. Dans de nombreux cas, nous devons convertir le type d'octet afin que le traitement des données et les opérations puissent être effectués plus facilement. Cet article explique comment effectuer une conversion d'octets.

  1. Convertir un octet en chaîne

Dans Golang, vous pouvez utiliser la fonction string() pour convertir le type d'octet en chaîne. Les exemples sont les suivants :

package main

import "fmt"

func main() {
    b := []byte{'h','e','l','l','o'}
    s := string(b)
    fmt.Println(s)  // 输出为 "hello"
}
  1. Convertir une chaîne en octet

Vous pouvez également utiliser la fonction []byte() pour convertir une chaîne en octet taper. Un exemple est le suivant :

package main

import "fmt"

func main() {
    s := "hello"
    b := []byte(s)
    fmt.Println(b)  // 输出为 [104 101 108 108 111]
}
  1. conversion d'octets en int

Nous pouvons utiliser la fonction int() pour convertir le type d'octet en un type entier. Un exemple est le suivant :

package main

import "fmt"

func main() {
    b := byte(255)
    i := int(b)
    fmt.Println(i)  // 输出为 255
}

Il convient de noter que la plage de valeurs du type d'octet est comprise entre 0 et 255. Les valeurs en dehors de cette plage généreront des exceptions d'exécution.

  1. int en octet

Nous pouvons utiliser la fonction byte() pour convertir le type entier en type octet. Un exemple est le suivant :

package main

import "fmt"

func main() {
    i := 255
    b := byte(i)
    fmt.Println(b)  // 输出为 255
}

Il est à noter que si la valeur du type entier dépasse la plage de valeurs du type octet, seuls les 8 bits inférieurs seront pris.

  1. Convertir le tableau d'octets en uint16

Dans Golang, nous pouvons le faire en épissant deux éléments consécutifs du tableau d'octets dans un Make de type uint16 la conversion. Un exemple est le suivant :

package main

import "fmt"

func main() {
    b := []byte{0x12, 0x34}
    u := uint16(b[0])<<8 + uint16(b[1])
    fmt.Println(u)  // 输出为 4660
}

Il convient de noter que l'ordre des octets (big endian ou little endian) doit être pris en compte pendant le processus de conversion.

  1. Convertir uint16 en tableau d'octets

Vous pouvez également utiliser le type []byte pour convertir le type uint16 en tableau d'octets. Un exemple est le suivant :

package main

import "fmt"

func main() {
    u := uint16(4660)
    var b = make([]byte, 2)
    b[0] = byte(u >> 8)
    b[1] = byte(u)
    fmt.Println(b)  // 输出为 [18 52]
}

Il convient de noter que le processus de conversion doit également prêter attention au problème de l'ordre des octets.

Résumé

Cet article présente comment convertir le type d'octet, couvrant la conversion entre octet et chaîne, octet et int, tableau d'octets et uint16. Dans le développement réel, la conversion de type d'octet se produira souvent. La maîtrise des méthodes de conversion ci-dessus peut rendre le traitement des données et les calculs plus pratiques.

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:golang définir la langueArticle suivant:golang définir la langue