Может ли кто-нибудь подтвердить, верно ли это?
Java превратит long
% int
в значение long
. Однако он никогда не может быть больше, чем модуль, поэтому всегда безопасно применять его к int
.
long a =
int b =
int c = (int) (a % b); // cast is always safe.
Аналогично, a long
% short
всегда будет безопасным для добавления в short
.
Если true, знает ли кто-нибудь, почему Java имеет более длинный тип для %
, чем нужно?
Кроме того, есть аналогичный случай для long
и int
(если вы игнорируете расширение знака)