개발_웹/Java

Java | 접두사와 접미사로 진수, 타입 표현하기

zuyo 2019. 5. 10. 21:50
반응형

접두사

접두사를 사용하여 8진수(0), 16진수(0x), 2진수(0b)를 표현할 수 있다.

int num = 10;
int num1 = 010; // 8 (8진수)
int num2 = 0x11; // 17 (16진수)
int num3 = 0b0011; // 3 (2진수)

접미사

정수 리터럴은 기본적으로 int 형을 표현하므로, long이나 float과 같은 타입을 명시하기 위해서는 접미사를 사용한다.

예를 들어, long a = 3000000000;과 같은 경우 정수(int)로 잡히게 되는데, int는 약 22억까지 표현 가능하므로 범위 밖의 수가 되어버린다.

이를 long 타입으로 만들고 싶으면 
long a = 3000000000L; 과 같이 접미사 L을 써주면 long 변수로 잡히게 한다.

long longNumber = 123_123_123_123L; // long을 나타내는 접미사 L 

// Java 7부터는 정수 리터럴에 언더바 기호를 사용하여 자릿수를 구분할 수 있다.

참고로 3L + 0.5f 의 결과값은 어떤 타입으로 캐스팅될까? 
정답은 float이다. long은 8byte고 float은 4byte, 바이트 수는 더 작지만 표현 범위가 더 크기 때문이다. (부동 소수점 방식)

반응형