Я знаю что нужно выполнить преобразование типов, но хотел бы разобраться в механизме.
Почему этот код выдает ошибку?
byte a = 2;
byte b = a + 2; // ошибка
Дело в том, что операции с байтами возвращают в результате int
. Это не совсем очевидно на первый взгляд, но имеет смысл. Дело в том, что byte
- довольно маленькая величина (от 0 до 255), и во многих случаях в результате арифметических операций с двумя байтовыми переменными, возникает переполнение, благодаря чему результат не поместился бы в переменную типа byte
. Это явно не очень ожидаемое поведение (например при сложении 200 и 60 получилось бы не 260, ка можно было бы ожидать, а 4), поэтому было решено, что byte + byte = int
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть примерно 10 USB устройств подключенных через USB-хабДля работы с устройствами есть библиотека производителя
У VK API есть ограничение - 3 запроса в секундуКак используя javascript sdk, ограничить запросы до трех в секунду?