Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvPmCvOv 64 of 420 menu
◀ ▶

Переполнение в Java

Переполнение - это шаг за край типа. У byte верхний край равен 127, нижний край равен -128. Отдельного числа 128 в этом типе нет. Шаг за верхним краем попадает на нижний.

Сложение byte считается в int. Там 128 помещается. Порча случается в момент записи обратно в byte:

byte num1 = 127; int num2 = num1 + 1; num1 = (byte) num2; System.out.println(num2); // выведет 128 System.out.println(num1); // выведет -128

С другого края шаг такой же. От -128 он дает 127:

byte num = -128; num = (byte) (num - 1); System.out.println(num); // выведет 127

Дана переменная:

byte num = 126;

Прибавьте 1, запишите результат в эту же переменную через (byte) и выведите ее.

Дана переменная:

byte num = 127;

Прибавьте 1, запишите результат в эту же переменную через (byte) и выведите ее.

Дана переменная:

byte num = -128;

Отнимите 1, запишите результат в эту же переменную через (byte) и выведите ее.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить