dqp21271 2012-02-14 03:53
浏览 710
已采纳

Go-将代表二进制数的字符串转换为int

I wrote a stupid solution for this, any better recipe? As you can see lots of useless conversions there.

package main

import (
    "fmt"
    "strconv"
    "math"
)

func conv(str string) int {
    l := len(str)
    result := 0.0
    for i,n := range str {
        number,_ := strconv.Atof64(string(n))
        result += math.Exp2(float64(l-i-1))*number
    }
    return int(result)
}

func main() {
    fmt.Println(conv("1001"))
}
  • 写回答

2条回答 默认 最新

  • dongyu4908 2012-02-14 04:11
    关注

    You want the strconv.ParseInt function, which converts from an arbitrary base, into a given bit size.

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        if i, err := strconv.ParseInt("1001", 2, 64); err != nil {
            fmt.Println(err)
        } else {
            fmt.Println(i)
        }
    }
    

    <kbd>Playground</kbd>

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 这个复选框什么作用?
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下