假设以下内容:
package main
import (
"fmt"
)
func main() {
var MaxInt uint64
MaxInt = 1<<64 - 1
fmt.Printf("Type: %T Value: %v\n", MaxInt, MaxInt)
}
我得到以下结果:
Type: uint64 Value: 18446744073709551615
正如预期的那样。
但是,说我想在使用时变大,说1<<256 - 1
func main() {
x:= 1<<256-1
fmt.Printf("Type: %T Value: %v\n", x, x)
}
我得到:
./prog.go:10:10: constant 115792089237316195423570985008687907853269984665640564039457584007913129639936 overflows int
对于x:=1<<512-1
,我得到:
./prog.go:10:10: shift count too large: 512
我的问题是:在这种规模下,我可以使用哪些类型来玩大量数字?