Dans cet article, l'éditeur PHP Baicao présentera comment convertir des éléments de données en binaire et ne donnera aucun résultat. Le processus est très simple et il vous suffit de suivre quelques règles de base. Tout d’abord, les éléments de données sont lus un par un, puis chaque élément de données est converti en binaire. Ensuite, pour chaque nombre binaire, si les chiffres qu'il contient sont tous des zéros, donnez un résultat nul. Grâce à cette méthode, nous pouvons facilement convertir les éléments de données en binaire et obtenir les résultats correspondants. Si cette démarche vous intéresse, alors suivez l'éditeur pour apprendre ensemble !
Je souhaite lire des données binaires et les écrire dans un fichier, et mes données ne sont que des tranches. La partie encodage fonctionne mais mon décodage via binary.Read
ne donne aucun résultat. Qu'ai-je fait de mal?
data := []int16{1, 2, 3} buf := new(bytes.Buffer) err := binary.Write(buf, binary.LittleEndian, data) if err != nil { fmt.Println("binary.Write failed:", err) } fmt.Println(buf.Bytes()) // working up to this point r := bytes.NewReader(buf.Bytes()) got := []int16{} if err := binary.Read(r, binary.LittleEndian, &got); err != nil { fmt.Println("binary.Read failed:") } fmt.Println("got:", got)
L'exécution de ce code donne
[1 0 2 0 3 0] got: []
Lien Playground ici : https://go.dev/play/p/yZOkwXj8BNv
Vous devez rendre la tranche aussi grande que ce que vous voulez lire dans le tampon. Vous obtenez un résultat vide car got a une longueur de zéro.
got := make([]int16, buf.Len()/2) if err := binary.Read(buf, binary.LittleEndian, &got); err != nil { fmt.Println("binary.Read failed:") }
Comme l'a dit JimB, vous pouvez lire directement à partir du tampon.
Voir aussi la documentation de binary.Read
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!