【问题标题】:Golang: parse a signed intGolang:解析一个有符号的整数
【发布时间】:2016-03-08 02:43:39
【问题描述】:

我有一些代码需要能够将包含 64 位值的字符串解析为 int64。例如,ff11223344556677 是有效的,但下游系统希望在 int64 中使用它。

strconv.ParseInt("ff11223344556677", 16, 64) 给出范围错误 - 它只喜欢解析正整数。有没有办法将这个值放入 int64 中,即使它是负数?

【问题讨论】:

    标签: go


    【解决方案1】:

    例如,

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        u, err := strconv.ParseUint("ff11223344556677", 16, 64)
        fmt.Printf("%x %v\n", u, err)
        i := int64(u)
        fmt.Println(i)
    }
    

    输出:

    ff11223344556677 <nil>
    -67234915848722825
    

    【讨论】:

    • 哦,太好了!不知道这么容易。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2016-10-27
    • 2011-04-28
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多