Возможно неявное преобразование значения константы типа - int в тип byte, при инициализации переменной значением константы, если значение константы не превышает максимально допустимого значения переменной.
const int i = 255; // 0000 0000 0000 0000 0000 0000 1111 1111 - 4 байта
byte j = 0; // 0000 0000 - 1 байт
j = i; // 1111 1111 - 1 байт
Возможно явное преобразование значения константы типа - float в тип byte, при инициализации переменной значением константы, если значение константы не превышает максимально допустимого значения переменной.
const float k = 255;
byte l = 0;
l = (byte)k;
Невозможно ни явное, ни неявное преобразование значения константы, при инициализации переменной значением константы, если значение константы превышает максимально допустимый диапазон значения переменной.
const int m = 256; // 0000 0000 0000 0000 0000 0001 0000 0000 - 4 байта
byte n = 0; // 0000 0000 - 1 байт
// n = m; // ОШИБКА.
// n = (byte)m; // ОШИБКА.
Невозможно ни явное, ни неявное преобразование значения вещественной константы, при инициализации целочисленной переменной значением константы, если значение константы превышает максимально допустимый диапазон значения переменной.
const float o = (float)256.5; // преобразование double в float
byte p = 0;
// p = o; // ОШИБКА.
// p = (byte)o; // ОШИБКА.
Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №3. ПЕРЕМЕННЫЕ И ТИПЫ ДАННЫХ"