2014-04-22 3 views
0

어떻게 계산합니까?Java가 너무 길면 long에서 int를 어떻게 파싱합니까?

int number = (int) Long.parseLong("F9DFF755", 16); 

Long.parseLong("F9DFF755", 16); == 4192204629 (too big to be stored by an int) 
Casted to int : -102762667 

int는 int에 길이가 긴 이유는 무엇입니까?

+6

그렇지 않습니다. 'int'는 단지 오버플로합니다. –

+0

가장 오른쪽 32 비트를 취해 나머지 32 비트를 버립니다. 이것은 원래 번호의 비트 32 (오른쪽에서부터 세어 짐)가 새 부호 비트가된다는 것을 의미합니다. – Dave

답변

8

int에 long 형을 캐스트하는 것은, long의 마지막 32 비트를 보관 유지해, 최초의 32 비트를 무시하는 것으로 구성됩니다.

관련 문제