-
기본 데이터 형(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처럼 변수 길이(비트 수)가 변하지 않는다.
문자형(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