C는 다양한 데이터형을 제공한다.
- 프로그래머가 용도에 따라 적당한 것을 선택하여 사용할 수 있게 하기 위해서 이다.
- 기본 데이터형은 정수형과 부동소수점형으로 나뉜다.
데이터 변수와 상수
-
상수 : 사용되기 전에 값이 미리 정해지며, 프로그램이 실행되는 동안 그 값이 변하지 않고 유지된다.
-
변수 : 프로그램이 실행되는 동안 값이 변하거나 값이 대입되는 데이터
정수
- 소수부가 없는 수이다.
- 2진수 형태로 저장된다.
부동소수점 수
- 정수와 정수 사이에 들어 있는 수들을 포함한다.
- 어떤 값에 소수점을 붙이면 부동소수점 값이 된다.
정수와 부동소수점의 차이점
- 정수는 소수부가 없다. 부동소수점 수는 소수부를 가질 수 있다.
- 부동소수점 수는 정수보다 훨씬 큰 범위의 수를 나타낼 수 있다.
- 일부 산술 연산에서, 부동소수점 수는 정밀도 손실을 입을 수 있다.
- 부동소수점 값들은 흔히 실제 값들의 근사값이다.
비트, 바이트, 워드의 간단한 설명
비트, 바이트, 워드 = 컴퓨터의 메모리 단위를 표시하는 데 사용된다.
1. 비트
- 메모리의 가장 작은 단위이다.
- 0 또는 1 두 값 중 하나만 저장할 수 있다.
2. 바이트
- 컴퓨터 메모리의 통상적인 단위다.
- 거의 모든 컴퓨터에서 1바이트는 8비트다.
- 기억 용량을 말할 때 사용하는 표준 정의다.
- C언어는 다른 정의를 가지고 있다.
3. 워드
- 특정 컴퓨터를 설계할 때 정해지는 고유 메모리 단위이다.
- 예를 들어, 마이크로컴퓨터에서 워드는 8비트이다.
- 퍼스널 컴퓨터들은 16비트 워드, 32비트 워드, 그리고 64비트까지 발전해 왔다.
- 더 큰 워드 크기는 데이터를 더 빠르게 옮길 수 있고 더 많은 메모리에 접근할 수 있다.
정수형은 두 가지 특징을 가지고 구별한다.
-
데이터형에 할당되는 기억 공간의 크기
-
부호의 유무
가장 작은 정수형은, 시스템에 따라 부호가 있을 수도 없을 수도 있는 Char형이다.
원하는 것을 명시적으로 지정하기 위해 signed char와 unsigned char를 사용할 수 있다.
-
이 방법은 char형에 작은 정수들을 저장할 때 사용한다.
그 밖의 정수형으로 short, int, long, long long형이 있다.
이들은 크기 순서대로 정렬한 부호 있는 데이터 형이다.
부호 없는 데이터형을 나타내기 위해 키워드 unsigned를 붙여서 unsigned short, unsigned int처럼 사용한다.
다음은, _Bool형이 있다.
_Bool형이란 true, false를 각각 나타내는 값 0과 1만을 저장할 수 있는 부호 없는 데이터형이다.
부동소수점형은 세 가지가 있다.
float형, double형, long double형 있다.
이들도 크기 순서대로 정렬하였다.
일부 컴파일러는 부동소수점형에 키워드 _Complex와 _Imaginary를 결합하여 복소수형과 허수형을 사용할 수 있도록 지원한다.
C의 기본 데이터형
1. int형
- 부호 있는 정수이다.
- 양수, 음수, 0이 될 수 있다.
2. int형 변수의 선언
- int형 변수를 위한 기억 공간을 할당하고 각각의 변수명과 연결한다.
int erns;
int hogs, cows, goats;
- 위와 같은 선언들은 변수는 만들지만 값은 제공하지 않는다.
- 변수의 값을 얻는 방법은,
1. 대입
2. 함수로 부터(scanf( ) 같은) 값 리턴
3. 변수의 초기화
- 변수를 초기화 한다는 것은 변수에 초기값을 대입하는 것이다.
- 변수를 저장하기 위한 기억 공간을 할당하고, 거기에 이름을 연결하여, 각 변수에 초기값을 대입한다.
정수는 10진수, 8진수, 16진수 표기로 나타낼 수 있다.
C에서는 특별한 접두사들이 사용자가 어느 진수를 지정한 것인지 알려준다.
0으로 시작하면 8진수, 0x나 0X로 시작하면 16진수다.
예를 들어, 32, 040, 0x20은 같은 값을 10진수, 8진수, 16진수로 나타낸 것이다.
접미사 l 또는 L은 long형 값을 나타내고 ll 또는 LL은 long long형 값을 나타낸다.
문자 상수는 'Q', '8', '$'와 같이 작은따옴표로 문자의 좌우를 감싸서 나타낸다.
이스케이프 시퀀스는 출력되지 않는 어떤 문자들을 나타낸다.
'\007'과 같은 형식을 사용하여 문자를 ASCII코드로 나타낼 수 있다.
부동소수점 수를 표현하는 방식은 다음과 같다.
-
93.912 = 소수점을 사용
-
7.38E10 = 지수 표기법
-
0xa.1fp10 = 16진수와 2의 거듭제곱을 사용하는 제 3의 지수표기
printf( ) 함수는 변환 지정자를 사용하여 다양한 데이터형의 값들을 출력할 수 있다.
%d, %f와 같이, 포맷 지정자는 퍼센트 기호와 데이터형을 나타내는 문자로 이루어져 있다.
접두사도 함께 출력하려면 %#o, %#x, %#X 처럼 사용하면 된다.
'Study > C' 카테고리의 다른 글
문자열과 입출력 포맷 (0) | 2020.09.27 |
---|