06 – 상수 (숫자)

앞에서는 문자를 화면에 출력했는데, 이러한 문자열도 상수에 속한다. 그럼 상수가 어떤 것인지를 알고, 여러 상수에 대해서 알아보도록 한다.

‘상수’는 프로그램이 실행되는 동안 변하지 않는 값이다. 숫자, 문자, 문자열 등 여러 상수가 존재한다. 이런 상수를 이용한 프로그램들에 대해서 하나씩 살펴본다.

계산에 이용되는 상수는 크게 고정소수점 상수와 부동소수점 상수고 분류되는데, 고정 소수점은 다시 여러 진수의 정수로 분류된다. 주로 쓰이는 것은 8진수, 10진수, 16진수 정도를 많이 쓴다. 부동소수점 상수는 지수 표현과 소수점 표현으로 구분된다. 이러한 수치 상수를 printf로 출력하는 프로그램이 아래와 같다.

%e1%84%89%e1%85%b3%e1%84%8f%e1%85%b3%e1%84%85%e1%85%b5%e1%86%ab%e1%84%89%e1%85%a3%e1%86%ba-2017-02-03-%e1%84%8b%e1%85%a9%e1%84%92%e1%85%ae-12-41-05

저렇게만 넣으면 어떤 상황인지 모르니 직접 실행한 결과도 같이 본다.

8진수와 16진수라고 주석에 적은 숫자는 확실히 출력된 숫자가 10진수로 출력하도록 되어 숫자가 다르게 나왔다. 저런 식으로 8진수에는 앞에 0을, 16진수에는 앞에 0x를 입력하여 8진수 숫자인지 16진수 숫자인지 표시해 주면 된다.

이 프로그램에서 또 하나 주목해야 할 것이 바로 printf 문에 있는 특수 문자이다. “” 사이에 있는 내용을 그대로 출력하는 일반적인 것과 달리 %d와 같이 %로 시작되는 내용이 있으면 그대로 출력하는 것이 아니라 큰따음표 밖에 있는 대응되는 인수의 내용을 출력하라는 뜻이 된다. 이러한 특수 문자를 변환 문자열이라고 하는데, 출력 형식을 지정하여 쓸 수 있다.

  • %d: 인수를 10진수 형태로 출력
  • %o: 인수를 8진수 형태로 출력
  • %x: 인수를 16진수 형태로 출력
  • %f: 인수를 실수(소수점 형식) 형태로 출력
  • %e: 인수를 실수(지수 형식) 형태로 출력
  • %g: 인수를 %f와 %e중 짧고 보기 좋은 형태로 출력

변환 문자열 하나 당 해당되는 인수 가 1:1로 대응한다. 즉, 안에 변환 문자열이 3개 있으면 뒤에 붙는 인수도 3개가 되어야 한다. 인수끼리의 구분은 ,로 구분한다. 3개를 예를 들면 아래와 같은 식이다.

printf(“%d %d %d \n”,10, 20, 30);

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.