Какой числовой тип я могу использовать, чтобы получить наибольшее число? - PullRequest
0 голосов
/ 09 июля 2019

Предполагая следующее:

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

У меня вопрос: какие типы я могу использовать для игры с большими числами в этом масштабе?

1 Ответ

2 голосов
/ 09 июля 2019

Вы можете использовать математика / большой пакет.Содержит типы Int, Float, Rat (рациональный).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...