16 進数から IEEE-754 Float への変換
「0xC40C5253」のような 16 進数の文字列を IEEE-754 float 値に変換するには、標準の strconv. ParseFloat 関数だけでは十分ではありません。この記事では、この変換を実現するための代替方法を検討します。
まず、入力のビット長を決定します。この場合、16 進数が 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 を使用する代替:
math パッケージは以下を提供しますを直接変換する組み込み関数 Float32frombits() uint32 を float32 に変換します。
コード:
f := math.Float32frombits(n2)
使用法:
どちらの方法でも、アクセスできるようになりました。 f に格納される浮動小数点値。例:
fmt.Println(f) // Output: -561.2863
以上がGo で 16 進数の文字列を IEEE-754 Float に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。