더북(TheBook)

다시 말해 -34-1.5E-23과 같이 적을 때, 맨 앞에 나온 부호는 숫자에 포함되지 않은, 그 숫자에 적용되는 부정(negation) 연산자다. 이 연산이 언제 중요해지는지 잠시 후 설명한다. 그런데 특이하게도 지수에 나온 마이너스 부호는 부동 소수점 리터럴에 포함된다.

TAKEAWAY 5.3에서 봤듯이 리터럴은 값을 가지며 타입도 반드시 지정해야 한다. 상수가 양의 값을 가진다는 것과 그 상수에 타입을 지정하는 것은 별개며, 타입은 signed로 지정할 수도 있다는 점에 주의한다.

TAKEAWAY 5.20 십진 정수 상수는 부호를 가질 수 있다.

이 속성은 상당히 중요하다. 가령 표현식에 -1이란 십진 정수 상수는 부호 있는 음수 값을 가진다는 것을 의미한다.

정수 리터럴의 정확한 타입은 최초 적합 규칙(first fit rule)에 의해 결정된다.

TAKEAWAY 5.21 십진 정수 상수는 세 가지 부호 있는 타입 중에서 첫 번째로 적합한 타입으로 정해진다.

이 규칙에 의해 의외의 현상이 일어날 수 있다. 가령 현재 플랫폼에서 signed 값의 최솟값이 215 = -32768이고, 최댓값이 215 1 = 32767이라 하자. 그러면 상수 32768은 signed 범위를 벗어나므로 signed long이어야 한다. 따라서 -32768이란 표현식의 타입은 signed long이 된다. 이런 플랫폼에서는 signed 타입의 최솟값을 리터럴 상수로 표현할 수 없다.Exs 1

 

 


Exs 1 signed long long의 최솟값과 최댓값의 속성도 이와 비슷하다면, 해당 플랫폼에서 가장 작은 정수 값은 마이너스 부호와 리터럴 하나를 조합하는 방식으로는 표현할 수 없음을 보여라.

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