Rumah > Artikel > pembangunan bahagian belakang > penukaran endian besar golang
Golang ialah bahasa pengaturcaraan lanjutan yang digunakan secara meluas dalam aplikasi web moden, pengkomputeran awan, teknologi kontena dan perkhidmatan mikro. Dalam bidang pemprosesan data, selalunya perlu untuk menukar data kepada hujung besar dan kecil Artikel ini akan memperkenalkan anda kepada kaedah penukaran endian besar dan kecil.
Dalam komputer, setiap jenis data mempunyai perwakilannya dalam ingatan, yang paling penting ialah tertib bait, biasanya Dipanggil endian besar atau kecil. "Endian besar" bermaksud bait tertinggi disimpan dahulu, dan "endian kecil" bermaksud bait terendah disimpan dahulu. Sebagai contoh, jika nombor 16-bit ialah 0x1234, ia menduduki dua bait memori dalam mod big-endian, bait pertama ialah 0x12 dan bait kedua ialah 0x34, bait pertama ialah 0x34 dan bait kedua bait ialah 0x12.
Di Golang, anda boleh melakukan operasi penukaran big-endian melalui pakej Binari dalam perpustakaan standard. Pakej Binari menyediakan fungsi untuk menukar antara jenis asas dan tatasusunan bait, termasuk fungsi untuk menukar susunan bait besar-endian dan kecil-endian.
Antaranya, artikel ini memfokuskan kepada fungsi berikut:
Tukar yang kecil- jujukan endian b Tukarkan kepada integer jenis uint16.
Tukar jujukan little-endian b kepada integer jenis uint32.
Tukar jujukan little-endian b kepada integer jenis uint64.
Tulis integer jenis uint16 v ke dalam jujukan little-endian b.
Tulis integer jenis uint32 v ke dalam jujukan little-endian b.
Tulis integer jenis uint64 v ke dalam jujukan little-endian b.
Untuk penukaran jujukan big-endian, pakej Binari juga menyediakan fungsi yang sepadan. Cuma gantikan awalan nama fungsi daripada BigEndian kepada LittleEndian.
Di bawah, kami memberikan contoh penukaran little-endian, mengambil uint16 sebagai contoh.
utama pakej
import (
"encoding/binary" "fmt"
)
func main() {
src := []byte{0x34, 0x12} val := binary.LittleEndian.Uint16(src) fmt.Println(val) dest := make([]byte, 2) binary.LittleEndian.PutUint16(dest, val) fmt.Printf("%x", dest)
}
dalam Dalam contoh ini, kami mentakrifkan tatasusunan bait src dengan panjang 2, yang mengandungi nilai jenis uint16 Kami menggunakan binari.LittleEndian.Uint16(src) untuk menukarnya kepada jujukan little-endian dan mencetaknya. Kemudian kami menulis nilai kepada tatasusunan bait baharu dest melalui binary.LittleEndian.PutUint16(dest, val), dan menggunakan fungsi Printf untuk mengeluarkan perwakilan heksadesimalnya. Jalankan atur cara dan keputusan output adalah seperti berikut:
4660
1234
Seperti yang anda lihat, nilai jenis uint16 0x1234 diwakili sebagai 0x3412 dalam little-endian jujukan, dan ditukar kembali Ia boleh dipulihkan kepada nilai asal kemudian.
Dengan menggunakan fungsi pakej Binari, kami boleh melakukan operasi penukaran big-endian dengan mudah di Golang. Dalam aplikasi praktikal, penukaran endian ialah kaedah penukaran data yang sangat biasa dan digunakan secara meluas dalam rangkaian komputer, sistem storan, pemprosesan imej dan bidang lain. Oleh itu, menguasai operasi penukaran endian besar dan kecil Golang akan sangat membantu pembangun dalam pemprosesan data.
Atas ialah kandungan terperinci penukaran endian besar golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!