2014-06-19 3 views
3

정수를 매우 큰 숫자로 나눌 필요가있는 코드가 있습니다. 12345678912. 오래 사용했지만 여전히 오류가 The literal 12345678912 of type int is out of range으로 표시됩니다. 예 번호 :매우 큰 숫자로 나누는 Java 리터럴

public static void main(String[] args) { 

    //rest of the code 

    long x = 12345678912; //<--error is in this statement 

    System.out.println(y/x); //<---y is an integer which is having some value in rest of the code. 
} 

난 부호 오랫동안 저장할 수있는 최대 값이 2^(64) 인 것을 알 -1. 그런데, 나는 자바에서 이것을 달성하는 방법을 알고 싶다. 직접 구현할 수있는 방법이 있습니까? 아니면 알고리즘을 구현해야합니까? 그것은가 ASCII 문자 L 또는 (엘) L 접미사 경우

답변

7

Java Language Specification

정수 리터럴 유형의 길이; 그렇지 않으면 그것은 int 형이다 (§4.2.1).

당신은 데이터 타입이 문자 l 또는 L 그것은 일

long x = 12345678912L; 
+1

를 추가하여 긴 말할 필요가! 고맙습니다. –