ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20140312 (리터럴 상수, 접미사, 아스키코드, 캐스팅, 서식문자, 특수문자)
    부산IT학원/스마트컨트롤러 2014. 3. 12. 14:37

    18일차

    ----------------------

    리터럴(Literal) 상수

    ----------------------

     

    - 변수가 아닌 것 상수를 리터럴 상수라 함.

    ex) int iNum = 3;    // 여기서 3이 리터럴 상수.

    - int형으로 저장 가능한 것은 int형으로 약속하고

    - double형으로 저장 가능한 것은 double형으로 저장하기로 약속했다.

     

    ----------------

    접     미     사

    ----------------

    - (리터럴) 상수 뒤에 써주는 것으로 상수의 자료형을 바꿀 수 있음.

    확인 예제 소스

    #include <stdio.h>

    int main()
    {
      printf("3 \t: %d \n"sizeof 3);
      printf("3LL \t: %d \n"sizeof 3LL);
      printf("3.14 \t: %d \n"sizeof 3.14);
      printf("3.14F \t: %d \n"sizeof 3.14F);

      return 0;
    }
     

    출력 화면

     

    ---------------------

    아스키코드 (ASCII)

    ---------------------

    - 영문자를 표기하기 위해 아스키코드 표를 만들어 그에 상응하는

    숫자를 글자 형태로 출력시 영문자가 출력된다.

    예제 소스코드

    #include <stdio.h>

    int main()
    {
      char cCh1 = 'A';
      char cCh2 = 65;
      char cCh3 = 'Z';
      char cCh4 = 90;

      printf("%c %d \n", cCh1, cCh1);
      printf("%c %d \n", cCh2, cCh2);
      printf("%c %d \n", cCh3, cCh3);
      printf("%c %d \n", cCh4, cCh4);

      return 0;
    }

    출력 화면

    따라서 문자도 컴퓨터 내에선 숫자로 취급한다.

    - 0부터 31까지는 제어문자

    - 65 = 'A'      - 90 = 'Z'       - 97 = 'a'     - 122 = 'z'

     

    - 문자열이 아닌 문자 하나만 쓸 경우 char 형 말고 int 형으로 쓰는 것이

    더 빠르다. 왜냐하면

     

    -------------------

    캐 스 팅 Casting

    -------------------

    - 묵시적 형변환

    컴파일러가 어떠한 언급도 없이 형변환

    두 가지로 나뉜다.

     

    - down casting(하향식 형변환)

    서로 크기가 안 맞을 경우 맞지 않는 부분 만큼 버림.

    ex)

    int iNum;

    char cNum;

    iNum = 257.9;

    cNum = iNum;

    이와 같이 소스를 짜면 iNum에는 257, cNum에는 1이 들어간다.

    iNum에서는 뒤에 소수를 버리고 cNum은 257이 이진수로 1 0000 0001인데

    1byte만 가져가므로 0000 0001 만 들어감.

     

    - up casting(상향식 형변환)

    데이터의 손실을 막기 위해 범위가 더 큰쪽으로 맞춘다.

    ex)

    dNum = 1 + 1.4;

    1도 double형으로 바뀌어 1.4와 연산되어 dNum에 들어간다.

     

    - 명시적 형변환

    프로그래머가 알려서 바뀌는 것

    ex)

    int iNum1 = 3;

    int iNum2 = 4;

    double dNum;

    dNum = (double)iNum1 / iNum2;

    () 괄호는 casting 연산자라 부르고

    결국 iNum1이 double형으로 승격하고

    묵시적 변환으로 iNum2도 double형으로 승격되어 계산됨.

     

    ---------------------------

    printf 서식 문자와 특수 문자

    ---------------------------

     

    추가로 %출력은 %%이다.

     

     

     

     

     

     

     

     

Designed by Tistory.