我有一些代码需要能够将包含64位值的字符串解析为int64。例如,ff11223344556677
有效,但下游系统需要int64
。
strconv.ParseInt("ff11223344556677", 16, 64)
给出范围错误 - 它只想解析正整数。有没有办法将这个值放入int64,即使它会是负面的?
答案 0 :(得分:4)
例如,
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