Метод big.Int.SetString

Метод big.Int.SetString преобразует строковое представление числа в значение типа big.Int. В первый параметр передается строка, содержащая числовое значение, во второй параметр - основание системы счисления. Метод возвращает указатель на big.Int и булево значение, указывающее на успешность преобразования. Если преобразование не удалось, возвращается nil и false.

Синтаксис

gofunc (z *Int) SetString(s string, base int) (*Int, bool)

Пример

Давайте преобразуем десятичное число из строки в big.Int:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  var num big.Int
  res, ok := num.SetString("12345678901234567890", 10)
  if ok {
    fmt.Println(res)
  }
}

Результат выполнения кода:

go"12345678901234567890"

Пример

Давайте преобразуем шестнадцатеричное число из строки в big.Int:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  var num big.Int
  res, ok := num.SetString("1A3F", 16)
  if ok {
    fmt.Println(res)
  }
}

Результат выполнения кода:

go"6719"

Пример

Давайте преобразуем двоичное число из строки в big.Int:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  var num big.Int
  res, ok := num.SetString("101010", 2)
  if ok {
    fmt.Println(res)
  }
}

Результат выполнения кода:

go"42"

Пример

Давайте проверим обработку ошибки при некорректной строке:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  var num big.Int
  _, ok := num.SetString("123abc", 10)
  if !ok {
    fmt.Println("conversion failed")
  }
}

Результат выполнения кода:

go"conversion failed"

Смотрите также

  • метод big.Int.String,
    который преобразует big.Int в строковое представление
  • метод big.NewInt,
    который создает новый big.Int из значения int64
  • метод big.Float.SetString,
    который преобразует строку в число с плавающей точкой
  • метод big.Rat.SetFrac,
    который создает рациональное число из числителя и знаменателя