rul*_*ing 6 type-conversion go
有没有办法将字符串(实质上是一个庞大的数字)从字符串转换为Go中的Big int?
我试着先把它转换成字节数组
array := []byte(string)
然后将数组转换为BigInt.
我认为这很有效,但输出与原始输入不同.所以我猜测转换由于某种原因没有做正确的事情.
我正在处理的数字超过300位数,所以我认为我不能使用常规int.
有什么最佳方法的建议吗?
pet*_*rSO 15
import "math/big"
func (z *Int) SetString(s string, base int) (*Int, bool)SetString将z设置为s的值,在给定的基础中解释,并返回z和表示成功的布尔值.整个字符串(不仅仅是前缀)必须对成功有效.如果SetString失败,则z的值未定义,但返回的值为nil.
基本参数必须为0或介于2和MaxBase之间的值.如果base为0,则字符串前缀确定实际的转换基数.前缀"0x"或"0X"选择基数16; "0"前缀选择基数8,"0b"或"0B"前缀选择基数2.否则所选基数为10.
例如,
package main
import (
"fmt"
"math/big"
)
func main() {
n := new(big.Int)
n, ok := n.SetString("314159265358979323846264338327950288419716939937510582097494459", 10)
if !ok {
fmt.Println("SetString: error")
return
}
fmt.Println(n)
}
Run Code Online (Sandbox Code Playgroud)
游乐场:https://play.golang.org/p/ZaSOQoqZB_
输出:
314159265358979323846264338327950288419716939937510582097494459
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6015 次 |
| 最近记录: |