問題:
16 進文字列 (例: "0xC40C5253") をIEEE-754 変換を使用した浮動小数点値strconv.ParseFloat 関数では困難であることが証明されています。代替のアプローチはありますか?
回答:
16 進文字列を浮動小数点数に効果的に変換するには、次の手順を検討してください:
これらの手順を示すコード スニペットの例を次に示します。
import ( "fmt" "strconv" "unsafe" ) func main() { s := "C40C5253" n, err := strconv.ParseUint(s, 16, 32) if err != nil { panic(err) } n2 := uint32(n) f := *(*float32)(unsafe.Pointer(&n2)) fmt.Println(f) }
注:
あるいは、数学パッケージは、 uint32 値を float32 に変換するための組み込み math.Float32frombits() 関数。安全でないパッケージの代わりに使用できます:
f := math.Float32frombits(n2)
以上がGo で 16 進文字列を IEEE-754 浮動小数点値に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。