Метод big.Int.Div

Метод big.Int.Div выполняет целочисленное деление двух больших чисел типа big.Int. В первый параметр передается делимое (делимое), во второй параметр — делитель. Метод возвращает результат деления (частное), округленное в сторону нуля. Важно: метод изменяет приемник (тот, на котором вызывается) и сохраняет в него результат.

Синтаксис

gofunc (z *big.Int) Div(x, y *big.Int) *big.Int

Пример с целочисленным делением

Выполним деление числа 100 на 3:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(100)
  y := big.NewInt(3)
  z := new(big.Int)

  res := z.Div(x, y)
  fmt.Println(res)
}

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

go33

Пример с отрицательными числами

Деление с отрицательным делимым:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(-100)
  y := big.NewInt(3)
  z := new(big.Int)

  res := z.Div(x, y)
  fmt.Println(res)
}

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

go-33

Пример с большими числами

Деление больших чисел, выходящих за пределы 64-битного диапазона:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := new(big.Int)
  y := new(big.Int)
  z := new(big.Int)

  // 2^100
  x.Exp(big.NewInt(2), big.NewInt(100), nil)
  // 2^50
  y.Exp(big.NewInt(2), big.NewInt(50), nil)

  res := z.Div(x, y)
  fmt.Println(res)
}

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

go1125899906842624

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

  • функцию big.Int.Add,
    которая выполняет сложение больших чисел
  • функцию big.Int.Sub,
    которая выполняет вычитание больших чисел
  • функцию big.Int.Mul,
    которая выполняет умножение больших чисел
  • функцию big.Int.Mod,
    которая вычисляет остаток от деления больших чисел