더북(TheBook)

▼ 표 5-3 상수 타입의 예. 여기서는 signedunsigned를 32비트로 표현한다고 가정했다.

상수 x

타입

-x의 값

2147483647

+2147483647

signed

-2147483647

2147483648

+2147483648

signed long

-2147483648

4294967295

+4294967295

signed long

-4294967295

0x7FFFFFFF

+2147483647

signed

-2147483647

0x80000000

+2147483648

unsigned

+2147483648

0xFFFFFFFF

+4294967295

unsigned

+1

1

+1

signed

-1

1U

+1

unsigned

+4294967295

앞에서 설명했지만 여기서 0이 중요하다. 매우 중요하여 0, 0x0, '\0'과 같이 다양한 표현 방식을 지원한다. 세 가지 표현 모두 값은 같고 타입은 signed int다. 0에 대한 정수형 소수점 표현은 없다. 0.0이 0이란 값에 대한 소수점 표현이긴 하지만, 정수가 아닌 double 타입의 부동 소수점 값으로 취급한다.

TAKEAWAY 5.25 서로 다른 리터럴이 같은 값을 가질 수 있다.

이는 정수에 대해서는 당연한 말 같지만 부동 소수점 상수는 그렇지 않다. 부동 소수점 값은 텍스트로 표현된 근삿값일 뿐이다. 바이너리로 표현할 때 소수점 아래 자리를 버리거나 반올림하기 때문이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.