나는 그것이 아닌 다른 변환하는 16 진수의 숫자 중 하나를 줄이면 그것을진수는 자바
int temp = Integer.parseInt("C050005C",16);
을하려고 할 때 나는 숫자 형식의 예외를 얻고에서 숫자 형식의 예외를 int로. 왜 그리고 어떻게이 문제를 해결할 것인가?
나는 그것이 아닌 다른 변환하는 16 진수의 숫자 중 하나를 줄이면 그것을진수는 자바
int temp = Integer.parseInt("C050005C",16);
을하려고 할 때 나는 숫자 형식의 예외를 얻고에서 숫자 형식의 예외를 int로. 왜 그리고 어떻게이 문제를 해결할 것인가?
정수가 항상 Java로 서명되므로 정수 오버플로가 발생합니다.
유형
NumberFormatException
의 예외가 발생합니다.
그것은 하지만, 않은 부호있는 정수에 맞는 것입니다. 그러나 자바에서는 옵션이 없다.
그래서 여기에 당신의 최선의 방법이 사용하는 수를 long
후 바로 장기를 int로 그의 하위 4 바이트를 넣어 :
long x = Long.parseLong("C050005C", 16);
int y = (int)(x & 0xffffffff);
어쩌면 당신도 여기에 비트를 삭제 "와"수 있지만 지금은 테스트 할 수 없습니다. 하지만 그건
int y = (int)Long.parseLong("C050005C", 16);
C050005C로 단축 할 수 이상의 Integer.MAX_VALUE입니다 3226468444 진수입니다. int
에 맞지 않습니다.
부호있는 int 유형의 범위는 0x7FFFFFFF에서 -0x80000000입니다.
사용이 :
long temp = Long.parseLong("C050005C",16);