我必须转换hex,表示为strings(例如"0xC40C5253")浮点值(IEEE-754转换).我没有设法使用strconv.ParseFloat函数.还有什么我必须使用的吗?到目前为止我找不到它.我也尝试先将它转换为整数然后转换为浮点数,但结果是错误的.
我上次尝试的代码:
package main
import (
"fmt"
"strconv"
)
func main () {
x, err := strconv.ParseInt("C40C5253", 16, 64)
f, err := strconv.ParseFloat(fmt.Sprintf("%d", x), 64)
if err != nil {
fmt.Printf("Error in conversion: %s\n", err)
} else {
fmt.Println(f)
}
}
Run Code Online (Sandbox Code Playgroud) 我正在提取长十六进制字符串形式的数据,我需要将其转换为十进制表示法,截断18位小数,然后以JSON格式提供.
例如,我可能有十六进制字符串:
"0x00000000000000000000000000000000000000000000d3c21bcecceda1000000"
Run Code Online (Sandbox Code Playgroud)
起初我试图使用ParseUint(),但是因为它支持的最高int64,我的数字最终太大了.
转换和截断后的此示例导致10 ^ 6.然而,有些情况下这个数字可能高达10 ^ 12(意味着预截断10 ^ 30!).
攻击这个的最佳策略是什么?