我是Go的新手,我正在做一些练习以加快速度。如何将表示位序列的字符串转换为Go?
中的相应数据类型例如,我看到如果它是一个代表64位数字的位串,我可以这样做: -
val, err := strconv.ParseInt(bitstring, 2, 64)
但是,如果bitstring代表一个更大的数字(比如1024或2048位),我该如何将该数字转换为Go中的相应类型?我相信在Go中管理大整数的类型很大.Int。
答案 0 :(得分:2)
是的,您可以使用big.Int
类型及其Int.SetString()
方法,将2作为基础。
示例:
i := big.NewInt(0)
if _, ok := i.SetString("10101010101010101010101010101010101010101010101010101010101010101010101010", 2); !ok {
fmt.Println("Invalid number!")
} else {
fmt.Println(i)
}
输出(在Go playground上尝试):
12592977287652387236522