Преобразование в uint8
Преобразование в тип uint8 (псевдоним для byte) в Go выполняется с помощью явного приведения типов. Этот тип представляет собой 8-битное беззнаковое целое число, диапазон значений которого от 0 до 255. При преобразовании важно учитывать, что если исходное значение выходит за пределы допустимого диапазона, оно будет усечено (при переполнении) или обрезано (при преобразовании из чисел с плавающей точкой).
Синтаксис
uint8(expression)
В качестве выражения может выступать переменная, литерал или результат вычисления числового типа.
Пример
Давайте преобразуем целое число в тип uint8:
package main
import "fmt"
func main() {
var num int = 42
res := uint8(num)
fmt.Println(res)
}
Результат выполнения кода:
42
Пример
Рассмотрим преобразование числа с плавающей точкой. Дробная часть будет отброшена:
package main
import "fmt"
func main() {
var f float64 = 123.78
res := uint8(f)
fmt.Println(res)
}
Результат выполнения кода:
123
Пример
При выходе за пределы диапазона (0-255) происходит усечение значения. Например, при преобразовании числа 300:
package main
import "fmt"
func main() {
var big int = 300
res := uint8(big)
fmt.Println(res)
}
Результат выполнения кода (300 - 256 = 44):
44
Пример
Преобразование отрицательного числа также дает неожиданный результат из-за усечения. Получается значение 256 - |число| (для чисел от -256 до -1):
package main
import "fmt"
func main() {
var neg int = -10
res := uint8(neg)
fmt.Println(res)
}
Результат выполнения кода:
246
Смотрите также
-
функцию
преобразование в int,
которая выполняет приведение к знаковому целому -
функцию
преобразование в uint,
которая приводит к беззнаковому целому (зависит от архитектуры) -
функцию
преобразование в uint16,
которая приводит к 16-битному беззнаковому целому -
функцию
преобразование в byte,
которая является псевдонимом для uint8 и часто используется для работы с байтами