1. 자료형
자료형은 자료의 종류를 말한다.
변수는 자료형에 따라 저장공간 이랑 종류가 결정된다.
정수 자료형- int, short, long
1바이트 = 8비트이다. unsigned에서 보면 2^n비트 인걸 확인할 수 있다.
음수 지원 여부 | 키워드 | 크기 | 표현범위 |
부호가 있는 정수형 signed 음수 지원 가능 |
signed short | 2바이트 | (-2^15) ~ (2^15)-1 |
signed int | 4바이트 | -2^31 ~ (2^31)-1 | |
signed long | 4바이트 | -2^31 ~ (2^31)-1 | |
부호가 없는 정수형 unsigned 음수 지원 불가 |
signed short | 2바이트 | 0~(2^16)-1 |
signed int | 4바이트 | 0~(2^32)-1 | |
signed long | 4바이트 | 0~(2^32)-1 |
2. 부동소수 자료형
float은 4바이트로 숫자 뒤에 f나 F를 붙인다. 표현 범위는 1.175494351e-38F ~3.402823466e+38F
double과 long double은 8바이트로 표현범위는 2.22507385850725014 e-308 ~ 1.7976931348623158e+308이다.
long double은 숫자 뒤에 L을 붙여야 한다.
그럼 출력할 때 제어 문자열을 % f 써야 한다.
부동소수 자료형은 소수 6자리까지 표현을 한다.
3. 문자 자료형
자료형 | 크기 | 표현범위 |
char | 1바이트 | -128 ~ 127(문자는 0에서127까지) |
signed char | 1바이트 | -128 ~ 127 |
unsigned char | 1바이트 | 0 ~255 |
문자는 자료 공간에 저장되는 값은 실제로 정수 값인데 아스키코드표를 참고해보면 문자를 2진수부터 16진수까지 표현한 걸 볼 수 있다.
문자 자료형은 제어 문자열을 % d 쓴다.
https://ko.wikipedia.org/wiki/ASCII
ASCII - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 두고 있다. 아스키는 7비트 인코딩으로
ko.wikipedia.org
4. 자료형의 크기
자료형은 모두 12가지이고, 중복되는 자료형을 빼면 8가지이다.
연산자 sizeof를 이용하면 자료형, 변수, 상수의 저장공간 크기를 바이트 단위로 직접 알 수 있다.
5. 자료형의 최대 최소 상수
max와 min을 이용해 자료형의 최대 최소 상수를 출력할 수 있다.
헤더 파일 2개를 삽입해야 한다.
#include <limits.h> 문자형, 정수형 상수가 정의된 헤더 파일이다.
#include <float.h> 부동소수형 상수가 정의된 헤더 파일이다.
6. 오버플로와 언더 플로
자료형의 범주에서 벗어난 값을 저장하면 오브 플로(overflow)가 발생한다.
범위 이상의 숫자를 입력하면 제일 낮은 숫자부터 다시 시작한다. 정수의 순환이 일어난다.
자료형 short는 -32768에서 32767R까지 저장이 가능한다. 32768을 저장하면 오버플로가 발생하여 -32768이 된다.
float과 double에서도 오버플로 언더 플로가 발생하는데 오버플로가 발생하면 무한대를 뜻하는 1.#INF가 저장되고
언더 플로는 0이 저장된다.
'홀로의 책방 > 코딩을 공부하자(C언어)' 카테고리의 다른 글
chapter 2. 입력함수 scanf() (0) | 2020.01.16 |
---|---|
chapter 2. 전처리 지시자 (0) | 2020.01.07 |
chapter1. 프로그램기초 (0) | 2020.01.05 |
chapter 0. Visual studio 2019 설치 및 프로젝트만들기 (0) | 2020.01.04 |
chapter0. 프로그래밍언어 (0) | 2020.01.03 |
댓글