Метод big.Int.Cmp

Метод big.Int.Cmp сравнивает два больших целых числа из пакета math/big. В качестве первого операнда выступает само число, для которого вызывается метод, а в качестве второго аргумента передается число для сравнения. Метод возвращает int: -1, если первое число меньше второго, 0, если числа равны, и 1, если первое число больше второго. Этот метод особенно полезен при работе с числами, выходящими за пределы стандартных целочисленных типов Go.

Синтаксис

goresult := x.Cmp(y)

Пример

Давайте сравним два больших числа, где первое число меньше второго:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(123)
  y := big.NewInt(456)
  res := x.Cmp(y)
  fmt.Println(res)
}

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

go-1

Пример

Давайте сравним два больших числа, где первое число больше второго:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(456)
  y := big.NewInt(123)
  res := x.Cmp(y)
  fmt.Println(res)
}

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

go1

Пример

Давайте сравним два равных больших числа:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(789)
  y := big.NewInt(789)
  res := x.Cmp(y)
  fmt.Println(res)
}

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

go0

Пример

Давайте проверим сравнение чисел с использованием метода SetString для работы с очень большими числами:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := new(big.Int)
  y := new(big.Int)
  x.SetString("999999999999999999999999999999", 10)
  y.SetString("999999999999999999999999999998", 10)
  res := x.Cmp(y)
  fmt.Println(res)
}

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

go1

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

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