по какой причине long ведет себя как int?
Имеется следующая программа:
public static void main(String[] args) {
long x1=0x100000000l;
long x2= 0xffffffff;
x2++;
System.out.println(x1);
System.out.println(x2);
}
Ее вывод:
4294967296
0
Почему x2 равно нулю, ведь оно оно же long-овое. Где-нибудь написано, что оно должно так работать?
то же самое в циклах, так цикл for(long T=0; T<0x100000000l; T++) никогда не будет окончен.
Проверено на hotspot 1.6.0_24 клиентская и серверная версии под linux.
upd: Всем спасибо, разобрался.
public static void main(String[] args) {
long x1=0x100000000l;
long x2= 0xffffffff;
x2++;
System.out.println(x1);
System.out.println(x2);
}
Ее вывод:
4294967296
0
Почему x2 равно нулю, ведь оно оно же long-овое. Где-нибудь написано, что оно должно так работать?
то же самое в циклах, так цикл for(long T=0; T<0x100000000l; T++) никогда не будет окончен.
Проверено на hotspot 1.6.0_24 клиентская и серверная версии под linux.
upd: Всем спасибо, разобрался.
