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
292 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!

sumber:php.cn
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