Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menukar Rentetan Heksadesimal kepada IEEE-754 Floats dalam Go?
Menukar Perenambelasan kepada IEEE-754 Float
Untuk menukar rentetan perenambelasan seperti "0xC40C5253" kepada nilai floatstr IEEE-754. Fungsi ParseFloat tidak mencukupi. Artikel ini meneroka kaedah alternatif untuk mencapai penukaran ini.
Pertama, tentukan panjang bit input. Dalam kes ini, dengan 8 digit hex, kemungkinan apungan 32-bit (walaupun pengesahan daripada pengguna disyorkan).
Menggunakan strconv.ParseUint dan Penukaran Tidak Selamat:
Kod:
s := "C40C5253" n, err := strconv.ParseUint(s, 16, 32) if err != nil { panic(err) } n2 := uint32(n) f := *(*float32)(unsafe.Pointer(&n2))
Alternatif Menggunakan matematik.Float32daripada:
Pakej matematik menyediakan fungsi terbina dalam Float32frombits() yang secara langsung menukar uint32 kepada float32.
Kod:
f := math.Float32frombits(n2)
Penggunaan:
Dengan mana-mana kaedah, anda kini boleh mengakses nilai apungan yang disimpan dalam f. Contohnya:
fmt.Println(f) // Output: -561.2863
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Heksadesimal kepada IEEE-754 Floats dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!