【发布时间】:2016-03-08 02:43:39
【问题描述】:
我有一些代码需要能够将包含 64 位值的字符串解析为 int64。例如,ff11223344556677 是有效的,但下游系统希望在 int64 中使用它。
strconv.ParseInt("ff11223344556677", 16, 64) 给出范围错误 - 它只喜欢解析正整数。有没有办法将这个值放入 int64 中,即使它是负数?
【问题讨论】:
标签: go
我有一些代码需要能够将包含 64 位值的字符串解析为 int64。例如,ff11223344556677 是有效的,但下游系统希望在 int64 中使用它。
strconv.ParseInt("ff11223344556677", 16, 64) 给出范围错误 - 它只喜欢解析正整数。有没有办法将这个值放入 int64 中,即使它是负数?
【问题讨论】:
标签: go
例如,
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
【讨论】: