2017-07-09 30 views
1

私は新しいです、私はいくつかの練習をスピードアップに取り組んでいます。どのようにして、一連のビットを表す文字列をGoの適切なデータ型に変換できますか?例えばについてビットストリングとbig.Intで作業する

、Iは64ビットの数を表す、そのビット列場合、私にできることを確認: -

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

しかし、ビット文字列は、多数(たとえば1024または2048ビット)を表す場合、その番号をGoの適切なタイプに変換するにはどうすればよいですか?私はGoの大きな整数を管理するための型が大きいと信じています。

答えて

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 
関連する問題