Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan Heksadesimal kepada Tatasusunan Byte dalam Go?

Bagaimana untuk Menukar Rentetan Heksadesimal kepada Tatasusunan Byte dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-14 17:09:02351semak imbas

How to Convert Hexadecimal Strings to Byte Arrays in Go?

Memindahkan Rentetan Heksadesimal kepada Tatasusunan Byte dalam Go

Menukar rentetan perenambelasan kepada tatasusunan bait dalam Go ialah tugas biasa dalam pelbagai senario pengaturcaraan. Artikel ini menunjukkan kaedah mudah untuk mencapai ini menggunakan fungsi hex.DecodeString().

Masalah yang dihadapi ialah menukar rentetan perenambelasan "46447381" kepada tatasusunan bait yang mewakili nilai perenambelasan individu: {0x46, 0x44, 0x73, 0x81}.

Penyelesaian kepada masalah ini terletak pada memanfaatkan fungsi hex.DecodeString():

package main

import (
    "encoding/hex"
    "fmt"
)

func main() {
    s := "46447381"

    data, err := hex.DecodeString(s)
    if err != nil {
        panic(err)
    }
    fmt.Printf("% x", data)
}

Penjelasan:

  1. Fungsi hex.DecodeString() mengambil rentetan perenambelasan sebagai input dan mengembalikan hirisan bait yang mengandungi nilai perenambelasan yang dinyahkod.
  2. Kepingan bait yang dinyahkod, data, kemudian dicetak menggunakan fmt.Printf( "% x", data) untuk memaparkan nilai dalam format heksadesimal.

Output:

46 44 73 81

Nota:

Adalah penting untuk diingat bahawa hanya mencetak kepingan bait menggunakan fmt.Println(data) akan mengeluarkan nilai dalam format perpuluhan dan bukannya perenambelasan. Oleh itu, menggunakan fmt.Printf("% x", data) adalah penting untuk memaparkan nilai heksadesimal dengan tepat.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Heksadesimal kepada Tatasusunan Byte dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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