Метод big.Int.Bytes
Метод big.Int.Bytes преобразует значение целого числа
из пакета math/big в байтовый срез.
Он возвращает абсолютное значение числа в виде среза байтов
в порядке от старшего к младшему.
Этот метод полезен для сериализации больших чисел
или для работы с двоичными данными.
Синтаксис
func (x *big.Int) Bytes() []byte
Метод не принимает параметров и возвращает срез байтов, представляющих абсолютное значение числа.
Пример
Давайте преобразуем число 255 в байтовый срез:
package main
import (
"fmt"
"math/big"
)
func main() {
num := big.NewInt(255)
res := num.Bytes()
fmt.Println(res)
}
Результат выполнения кода:
[255]
Пример
Давайте преобразуем число 256 в байтовый срез:
package main
import (
"fmt"
"math/big"
)
func main() {
num := big.NewInt(256)
res := num.Bytes()
fmt.Println(res)
}
Результат выполнения кода:
[1 0]
Как видите, число 256 в шестнадцатеричной системе представляется как 0x0100, поэтому метод возвращает срез из двух байтов.
Пример
Давайте преобразуем большое число в байтовый срез:
package main
import (
"fmt"
"math/big"
)
func main() {
num := new(big.Int)
num.SetString("12345678901234567890", 10)
res := num.Bytes()
fmt.Printf("%x\n", res)
}
Результат выполнения кода:
ab54a98ceb1f0ad2
Пример
Давайте рассмотрим, что метод возвращает для нулевого числа:
package main
import (
"fmt"
"math/big"
)
func main() {
num := big.NewInt(0)
res := num.Bytes()
fmt.Println(res)
}
Результат выполнения кода:
[]
Для нулевого числа метод возвращает пустой срез.
Смотрите также
-
метод
big.Int.String,
который преобразует число в строковое представление -
метод
big.Int.SetString,
который устанавливает значение числа из строки -
метод
big.Int.Cmp,
который сравнивает два больших числа -
функцию
big.NewInt,
которая создает новое большое целое число