Метод big.Int.Bytes

Метод big.Int.Bytes преобразует значение целого числа из пакета math/big в байтовый срез. Он возвращает абсолютное значение числа в виде среза байтов в порядке от старшего к младшему. Этот метод полезен для сериализации больших чисел или для работы с двоичными данными.

Синтаксис

gofunc (x *big.Int) Bytes() []byte

Метод не принимает параметров и возвращает срез байтов, представляющих абсолютное значение числа.

Пример

Давайте преобразуем число 255 в байтовый срез:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := big.NewInt(255)
  res := num.Bytes()
  fmt.Println(res)
}

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

go[255]

Пример

Давайте преобразуем число 256 в байтовый срез:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := big.NewInt(256)
  res := num.Bytes()
  fmt.Println(res)
}

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

go[1 0]

Как видите, число 256 в шестнадцатеричной системе представляется как 0x0100, поэтому метод возвращает срез из двух байтов.

Пример

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

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := new(big.Int)
  num.SetString("12345678901234567890", 10)
  res := num.Bytes()
  fmt.Printf("%x\n", res)
}

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

goab54a98ceb1f0ad2

Пример

Давайте рассмотрим, что метод возвращает для нулевого числа:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := big.NewInt(0)
  res := num.Bytes()
  fmt.Println(res)
}

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

go[]

Для нулевого числа метод возвращает пустой срез.

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

  • метод big.Int.String,
    который преобразует число в строковое представление
  • метод big.Int.SetString,
    который устанавливает значение числа из строки
  • метод big.Int.Cmp,
    который сравнивает два больших числа
  • функцию big.NewInt,
    которая создает новое большое целое число