DeepFlowest

[C] 02_상수와 데이터 출력 본문

프로그래밍 언어/C

[C] 02_상수와 데이터 출력

Orange57 2020. 10. 14. 09:51
728x90
반응형
SMALL

* 본 포스팅은 혼자 공부하는 C언어 (서현우 지음)를 읽고 정리한 내용입니다.

* 본 포스팅에 포함된 코드는 본인이 작성한 것이므로 책과 다를 수 있습니다.


 

1. 주석 처리

// 해당 줄의 끝까지 주석 처리
/* ~ */ : 사이의 모든 내용을 주석 처리

10 /*정수 상수*/ + 20 /*정수 상수*/

2. 출력, 제어 문자

  • C 프로그램은 함수로 만든다.
  • printf() : print formatted라는 뜻
  • printf()를 사용하기 위해서는 반드시 아래 코드를 먼저 작성해주어야 한다.

        #include <stdio.h>    : 파일의 내용을 프로그램 안에 복사한다는 의미

        stdio.h : standard input output을 의미하며 C 언어에서 기본으로 사용하는 입출력 함수가 들어있음.

        

# include <stdio.h>    // stdio : standard input output(표준입출력)의 줄임말

int main(void)
{
    printf("Happy");    // 문자열 "Happy" 출력,  ;을 사용하여 문장의 끝을 표시
    printf("Friend");   // 문자열 "Friend" 출력

    printf("Be happy\n");  // 문자열 출력하고 줄 바꿈(\n)
    printf("123\n");

    printf("My\tfriend\n");    //\t : 탭
    printf("Goot\bd\tchance\n");      // "Goot"를 출력하고 한 칸 왼쪽으로 이동(\b)해 t를 d로 바꾸고 탭 위치로 이동(\t) 후에 "chance"를 출력하고 줄 바꿈(\n)
    printf("Cow\rW\a\n");      // 맨 앞으로 이동(\r)해 C를 W로 바꾸고 벨소리(\a)를 내고 줄 바꿈(\n)

    return 0;        // 프로그램 종료
}
=============================================================================================
실행 결과 : 
HappyFriendBe happy
123
My      friend
Good    chance
Wow

3. 정수, 실수 출력

  • printf()는 기본적으로 문자열을 출력하는 함수이므로, 숫자를 출력할 때는 변환 문자를 사용해서 문자열로 변환하는 과정이 필요하다.
  • %d : 정수
  • %lf : 실수
// 정수 : %d
// 실수 : %lf

#include <stdio.h>

int main(void)
{
	printf("%d\n", 10);
	printf("%lf\n", 3.4);    // %lf : 소수점 이하 6자리까지 출력
	printf("%.1lf\n", 3.456);      // 소수점 이하 첫째 자리까지 출력(둘째 자리에서 반올림)

	printf("%d과 %d의 합은 %d입니다.\n", 10, 20, 10 + 20);

	return 0;
}
============================================================================
실행 결과:
10
3.400000
3.5
10과 20의 합은 30입니다.

4. 상수와 데이터 표현법

  • C언어는 메모리에 직접 접근하거나 비트 단위의 연산을 수행하여 데이터를 효율적으로 처리할 수 있다.
  • 이를 활용하기 위해서 데이터가 메모리에 저장되는 방식을 알아야 한다.
  • 정수, 실수, 문자가 컴파일된 후에 어떤 형태로 바뀌는지 알아본다.

4-1. 정수 상수 표현법

  • 상수(constant) : 원주율 값(3.14)처럼 값이 정해져 있고 변하면 안 되는 경우에 주로 사용. (예. 태어난 시간, 장소 등)

(변수 : 나이, 키, 몸무게와 같이 값이 바뀌는 데이터)

 

  • 정수 상수는 아라비아 숫자 0~9,+,- 기호를 사용
  • 이를 세 가지 진법 (10진수, 8진수, 16진수)로 표현

* 진법별 수 표현 방법

10진수 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
8진수 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
16진수 0 1 2 3 4 5 6 7 8 9 A B C D E F

C언어에서 진법 표현하기 위해서 8진수는 숫자 앞에 0 , 16진수는 0x를 붙여 구분한다.

 

   12 (10진수) 

= 014 (8진수)

= 0xc (16진수)

#include <stdio.h>

int main(void)
{
	printf("%d\n", 12);    // 10진수 정수 상수 출력
	printf("%d\n", 014);   // 8진수 정수 상수 출력
	printf("%d\n", 0xc);   // 16진수 정수 상수 출력

	printf("%o\n", 12);   // 8진수로 출력하려면 %o
	printf("%x\n", 12);   // 16진수 소문자로 출력하려면 %x
	printf("%X\n", 12);   // 16진수 대문자로 출력하려면 %X

	return 0;
}

//  진법에 따른 수의 표현법은 다르지만, 같은 값 나옴
=============================================================
실행 결과:
12
12
12
14
c
C

4-2. 실수 상수 표현법

소수점 형태 지수 형태 C언어 표기법
(e는 밑수 10을 의미, E도 가능)

0.0000314

3.14 x 10^-5
= 0.314 x 10^-4
= 31.4 x 10^-6
3.14e-5
= 0.314E-4
= 31.4e-6

소수점 형태인 0.0000314을 소수점 앞에 0이 아닌 유효 숫자 한 자리를 사용하여 지수 형태로 바꾼 것(3.14e-5)을 정규화 표기법이라고 한다.

* printf 함수가 실수를 지수 형태로 출력할 때는 기본적으로 정규화 표기법을 사용한다.

 

  • %le : 실수를 지수형태로 출력하는 방법
#include <stdio.h>

// 지수 형태로 출력하려면 %le 사용
int main(void)
{
	printf("%.1lf\n", 1e6);        // 지수 형태의 실수를 소수점 형태로 출력
	printf("%.7lf\n", 3.44e-5);     // 소수점 이하 7자리까지 출력
	printf("%le\n", 0.0000314);      // 소수점 형태의 실수를 지수 형태로 출력
	printf("%.2le\n", 0.0000314);      // 지수 형태로 소수점 이하 둘째 자리까지 출력

	return 0;
}

=================================================================
실행 결과 : 
1000000.0
0.0000344
3.140000e-05
3.14e-05

4-3. 문자, 문자열 상수 표현법

  • '1': 문자 상수
  • "first" : 문자열 상수
  • %c : 문자
  • %s : 문자열 ( 변환 문자 없이도 바로 출력할 수 있으나 보통 %s 사용함)
#include <stdio.h>

int main(void)
{
	printf("%c은 %s입니다.\n", '1', "first");   // 문자(%c)와 문자열(%s)을 함께 출력

	return 0;
}

4-4. 비트 형태

 


출처 : 혼자 공부하는 C언어 (서현우 지음), 엘리스 아카데미 - 혼자 공부하는 C언어

 

728x90
반응형
LIST

'프로그래밍 언어 > C' 카테고리의 다른 글

[C] 04_연산자  (0) 2021.01.30
[C] 03_변수와 데이터 입력  (0) 2021.01.26
[C] 01_컴파일과 컴파일러  (0) 2020.10.13
Comments