Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menukar []bait kepada int dalam Go?

Bagaimana untuk Menukar []bait kepada int dalam Go?

Barbara Streisand
Lepaskan: 2024-12-02 19:42:12
asal
329 orang telah melayarinya

How to Convert a []byte to an int in Go?

Strategi Penukaran: []bait kepada int dalam Go

Menukar data daripada kepingan bait ([]bait) kepada integer (int ) timbul dalam pelbagai senario, seperti yang ditunjukkan dalam keperluan untuk menghantar nilai berangka melalui TCP. Pertanyaan ini meneroka kaedah penukaran yang tersedia dalam Go.

Menukar []bait kepada int menggunakan pengekodan/perduaan

Pakej pengekodan/perduaan menyediakan mekanisme yang mudah untuk menukar antara jujukan bait dan jenis data asas. Ia menyokong penukaran untuk jenis 16, 32 dan 64-bit.

Antara muka ByteOrder, yang mentakrifkan endian susunan bait (besar atau kecil-endian), memainkan peranan penting dalam penukaran ini. Coretan kod berikut menunjukkan cara menukar []bait kepada uint64 menggunakan fungsi ByteOrder.Uint64(), dengan mengandaikan susunan bait 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
}
Salin selepas log masuk

Dalam contoh ini, contoh mySlice []bait mewakili integer tidak bertanda 8 bait. Fungsi binari.BigEndian.Uint64() menukar jujukan bait ini kepada uint64 menggunakan susunan bait big-endian (yang menentukan bahawa bait paling ketara muncul dahulu dalam jujukan bait).

Nota: Fungsi penukaran bergantung pada jenis data yang dikehendaki. Contohnya, binary.BigEndian.Uint16() akan digunakan untuk menukar kepada integer tidak bertanda 16-bit.

Atas ialah kandungan terperinci Bagaimana untuk Menukar []bait kepada int dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan