在Go中使用位串和big.Int

I'm new to Go and I'm working on a few exercises to get up to speed. How can I convert a string representing a sequence of bits to the appropriate datatype in Go?

For eg, I see that if its a bitstring representing a 64-bit number, I can do :-

val, err := strconv.ParseInt(bitstring, 2, 64)

However, if the bitstring represents a larger number(say 1024 or 2048 bits), how can I go about converting that number to the appropriate type in Go? I believe the type for managing big integers in Go is big.Int.

Yes, you may use the big.Int type, and its Int.SetString() method, passing 2 as the base.

Example:

i := big.NewInt(0)
if _, ok := i.SetString("10101010101010101010101010101010101010101010101010101010101010101010101010", 2); !ok {
    fmt.Println("Invalid number!")
} else {
    fmt.Println(i)
}

Output (try it on the Go playground):

12592977287652387236522