Операции с узкими целыми в Java
Типы byte и short хранят маленькие
целые, но их сложение Java считает в более
широком int. Сумму двух byte
нельзя сразу записать обратно в byte.
Программа не собирается:
byte num1 = 10;
byte num2 = 20;
byte num3 = num1 + num2; // программа не собирается
В int эта сумма помещается и равна 30:
byte num1 = 10;
byte num2 = 20;
int num3 = num1 + num2;
System.out.println(num3); // выведет 30
Чтобы положить ее обратно в byte,
приводят уже всю сумму. Без скобок вокруг
сложения (byte) относится только
к первому числу, и программа не собирается:
byte num1 = 10;
byte num2 = 20;
byte num3 = (byte) num1 + num2; // программа не собирается
Скобки охватывают всю сумму:
byte num1 = 10;
byte num2 = 20;
byte num3 = (byte) (num1 + num2);
System.out.println(num3); // выведет 30
У short то же правило:
short num1 = 100;
short num2 = 25;
short num3 = (short) (num1 + num2);
System.out.println(num3); // выведет 125
Даны переменные:
short num1 = 40;
short num2 = 15;
Найдите сумму, запишите ее в переменную
short и выведите ее.
Даны переменные:
byte num1 = 6;
byte num2 = 7;
Найдите произведение, запишите его в переменную
byte и выведите его.