將十六進位轉換為IEEE-754 浮點
要將十六進位字串(如「0xC40C5253」)
要將十六進位字串(如「0xC40C5253」)轉換為IEEE-754 浮點數值,標準strconv. ParseFloat 函數還不夠。本文探討了實現此轉換的替代方法。 首先,決定輸入的位元長度。在這種情況下,如果有 8 個十六進位數字,則可能是 32 位元浮點數(儘管建議使用者確認)。使用strconv.ParseUint 和不安全轉換:
代碼:
s := "C40C5253" n, err := strconv.ParseUint(s, 16, 32) if err != nil { panic(err) } n2 := uint32(n) f := *(*float32)(unsafe.Pointer(&n2))
替代使用math.Float32frombits:
數學包提供內建函數 Float32frombits() 直接轉換uint32 轉換為 float32。程式碼:
f := math.Float32frombits(n2)
用法:
使用任一方法,您現在都可以存取儲存在f中的浮點數值。例如:fmt.Println(f) // Output: -561.2863
以上是如何在 Go 中將十六進位字串轉換為 IEEE-754 浮點數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!