duanhe1903
2015-05-28 15:20
浏览 519
已采纳

如何将十六进制转换为浮点数

I have to convert hex, represeneted as strings (e.g. "0xC40C5253") to float values (IEEE-754 conversion). I did not manage to do that using the strconv.ParseFloat function. Is there anything else I have to use? I couldn't find it so far. I also tried converting it to an integer first and then to a float, but the results were wrong.

Code of my last try:

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
", err)
  } else {
    fmt.Println(f)
  }
}

图片转代码服务由CSDN问答提供 功能建议

我必须转换 hex </ code>,以 string </ code> s表示 (例如“ 0xC40C5253” </ code>)浮点值( IEEE-754 </ em>转换)。 我没有使用strconv.ParseFloat函数做到这一点。 还有什么我需要使用的吗? 我到目前为止找不到。 我还尝试先将其转换为整数,然后转换为浮点数,但结果是错误的。</ p>

我上次尝试的代码:</ p>

 < 代码>包main 
 
import(
“ fmt” 
“ strconv” 
)
 
func main(){
x,err:= strconv.ParseInt(“ C40C5253”,16,64)
f  ,err:= strconv.ParseFloat(fmt.Sprintf(“%d”,x),64)
 
如果err!= nil {
 fmt.Printf(“转换错误:%s 
”,err  )
} else {
 fmt.Println(f)
} 
} 
 </ code> </ pre> 
 </ div>

3条回答 默认 最新

相关推荐 更多相似问题