SmartQuery /ВОПРОС → ПРИМЕР → ПОНЯТНЫЙ ОТВЕТ
Языки и платформы

Byte в Kotlin: диапазон, арифметика и массивы

Byte в Kotlin — знаковое целое число из 8 бит, диапазон от −128 до 127. Его выбирают, когда этого требует API или формат данных; для обычного счётчика чаще подходит Int.

Объявление и границы

val value: Byte = 10
val min: Byte = -128
val max: Byte = 127
// val invalid: Byte = 128 // ошибка: значение вне диапазона

val запрещает повторное присваивание переменной, var разрешает. Это не меняет диапазон Byte. Числовые литералы можно присваивать Byte, если они подходят по диапазону.

Арифметика возвращает более широкий тип

val a: Byte = 5
val b: Byte = 3
val sum: Int = a + b
val greater: Boolean = a > b
println(sum)      // 8
println(greater)  // true

Не пишите val sum: Byte = a + b без явного преобразования. Приведение toByte не является проверкой диапазона: оно может изменить значение. Сначала проверьте пределы результата, если нужен именно Byte.

Byte занимает 8 бит с диапазоном от минус 128 до 127; сумма двух Byte со значениями 5 и 3 имеет тип Int и значение 8
Восьмибитный тип операндов не означает восьмибитный результат сложения.

Массив байтов

val data = byteArrayOf(1, 2, 3, 4, 5)
val first: Byte = data[0]
println(first)  // 1

ByteArray хранит последовательность байтов и полезен при работе с бинарными данными. Смысл байтов — текстовая кодировка, часть числа или протокол — задаётся форматом; сам тип этого не определяет. Не приписывайте одной переменной Byte автоматически выигрыш памяти на любой платформе.

Документация