ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기본 데이터 형(primitive data types)
    전공/프로그래밍 언어론 2020. 5. 14. 09:34

    자료형(data type)이란 변수들이 가질 수 있는 값의 집합과 이 값들에 적용할 수 있는 연산들의 집합이다.

     

    컴퓨터 언어의 자료형은 기본 데이터 형(primitive data types)과 복합 데이터 형(composite data type)으로 나누어진다.

     

    기본 데이터 형

    1. 정수형

    2. 실수형

    3. 문자형

    4. boolean형

     

    복합 데이터 형

    1. 레코드 형

    2. 배열형

    3. 포인터 형

    4. 문자열 형

     

    정수형(integer type)

    - 정수형 변수의 크기는 프로그래밍 언어마다, 또 구현된 컴퓨터마다 다를 수 있다.

    - C 언어에서 정수형은 부호있는 정수형(signed integer)과 부호없이 양수만을 나타내는 부호없는 정수형(unsigned integer)로 구분하기도 하고, short integer, int, long integer 등으로 나눌 수도 있다. 

    - 정수형 변수에는 기본적인 사칙연산(+, =, *, /)이 가능하고, C 언어에서는 modular 연산(%)도 가능하다. 

    - C 언어에서 나눗셈 연산 시 실수 결과를 바란다면, 아래 문장과 같이 피연산자 중 하나를 실수값으로 해야 한다.

    - printf(" (double)54 / 10 = %5.2lf\n", (double)54 / 10);

    - Java 언어는 구현된 컴퓨터에 따라 최대 정수의 크기가 달라지는 것을 방지하기 위하여 short integer는 16bit, integer는 32bit, long integer는 64bit로 표현하도록 정의한다.

     

    부동 소수점 실수형(floating point real number type)

    - 실수를 표현하고자 할 때 사용하는 데이터 유형.

    - IEEE 표준은 부동 소수점 수를 N = (e, m)으로 표현하며 e는 지수, m은 가수다. 실제 N의 크기는 m X 2^e 이다.

    - 나타내고자 하는 실수의 정밀도 및 크기에 따라 m을 나타내는 비트수와 e를 나타내는 비트수를 변경한다. 

    - C 언어의 경우 float 형(단정밀도 32비트)과 double 형(배정밀도 64비트)으로 구분한다.

    - CPU의 구조와 상관없이 국제 표준에 의한 규정에 따른 변수이므로 int처럼 변수 길이(비트 수)가 변하지 않는다.

    IEEE 754의 32bit, 64bit 실수 표현

     

    문자형(character type)

    - 7bit ASCII 코드는 128개 문자를 허용하며, 영어 대문자, 소문자, 수학 기호, 제어 문자와 escape 기호를 포함한다.

    - 최근 Java 언어 같은 일부 프로그래밍 언어는 컴퓨터 시스템의 국제화에 맞추어 ASCII 코드 대신에 2byte 체계를 가진 유니코드(unicode)를 사용한다. 

    - 유니코드는 영문자뿐만 아니라 한국어, 중국어, 일본어, 아랍어 등을 모두 표현할 수 있다.

    - C 언어에서 문자형은 정수형의 부분 집합으로 간주한다. 따라서 다음과 같은 연산이 가능하다.

    char c;
    int i;
    c = 'A' +2; // 문자 c에 'C'가 저장된다.
    i = 'K' // 정수 i에 'K'의 ASCII 코드 값이 저장된다.
    c = i + 1; // 'K'+1 즉 'L'이 c에 저장된다.
    printf("i = %c %d", i, i); // i = K 75
    printf("c = %c %d", c, c); // c = L 76

     

    Boolean 형

    - true와 false 값을 가진다.

    - boolean 형 변수간에는 and, or, not 연산자가 허용된다.

    - C언어에서는 boolean은 별도로 정의되어 있지 않으며, 대신에 논리식의 결과가 true면 1, 그렇지 않으면 0을 반환한다. 정수식도 논리식으로 인식되며, 정수식의 계산 결과가 0이 아니면 true, 0이면 false로 간주한다.

    int i, k = 2;
    if (k-3) i = 10; else i = 100; // k-3은 0이 아니므로 true로 인식되어 i = 10이 실행됨.

    - C++ 언어에서는 bool이라는 데이터 타입이 정의되어 있으나 bool 형 변수는 true와 false 값뿐만 아니라 다른 값도 가질 수 있다. 0은 false, 그 이외의 값은 모두 true이다.

    bool b; // true
    b = true; // true
    b = false; // false
    b = 1; // true
    b = 'A'; // true
    b = 10.2; // true
    b = 0.0; // false
    b = 1 + 10.1; // true

     

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

    2. 변수 및 바인딩  (0) 2020.05.04
    1. 프로그래밍 언어의 소개  (0) 2020.05.02
Designed by Tistory.