상세 컨텐츠

본문 제목

[TIL] 2 - 1. 데이터형 - 기본 데이터형의 종류 및 범위

언어/C

by 민:하 2022. 3. 1. 21:24

본문

 

1. 데이터형의 구분

기본 데이터형 산술형 정수형 문자형 (unsigned) char
수치형 (unsigned) short, (unsigned) int, (unsigned) long, (unsigned) long long
실수형 float, double, (long double)
무치형 void (없다, 모른다)
복합 데이터형 배열(array), 포인터(pointer), 구조체(struct), 나열형(enum), 공용체(union)

 

2. 기본 데이터형의 범위

구분 기본 데이터형 범 위 Byte
문자형 char
unsigned char
-128 ~ 127 (-(2^7) ~ (2^7) - 1)
0 ~ 255
1
수치형 int
unsigned int
-2,147,483,648 ~ 2,147,483,647 (-(2^31) ~ (2^31) - 1)
0 ~ 4294967295
4
short (int)
unsigned short (int)
-32,768 ~ 32,767 (-(2^15) ~ (2^15)-1)
0 ~ 65535
2
long (int)
unsgiend long (int)
-2,147,483,648 ~ 2,147,483,647 (-(2^31) ~ (2^31) - 1)
0 ~ 4294967295
4
long long (int)
unsigned long long (int)
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
0 ~ 18,446,744,073,709,551,615
8
실수형 float ±3.4 * 10^-38 ~ ±3.4 * 10^38 4
double ±1.7 * 10^-308 ~ ±1.7 * 10^308 8

 

3. signed와 unsigned의 이해

signed와 unsigned의 차이점은 Sign Bit가 있느냐 없느냐의 차이

Sign bit가 0이면 양수, 1이면 음수

  • signed char 형 기억공간의 형태

  • unsigned char 형 기억공간의 형태

 

 

4. 데이터 표현에 사용되는 3가지 진법

① 10진법 : 0이 아닌 수로 시작되는 수

② 8진법 :  0을 접두어로 갖고, 0~7까지의 수로 표현되는 수

③ 16진법 : 0x를 접두어로 갖고, 0~9까지의 수와 10~15까지의 수에 대응되는 a~f의 문자로 표현되는 수

+ 컴퓨터 내부에 저장되는 2진수 표기는 프로그래밍 시에는 허용되지 않음.

 

< suffix >

  • suffix : 숫자에 붙이는 접미사
  • 정수형 suffix : u, l(L), ul(UL)         ex) 100L, 0123L, OxffL
  • 실수형 suffix : f(F), L

ex) unsigned int b = 10;    // 10은 signed int이기 때문에 unsigned int로 자동형변환

ex) unsigned int b = 10u;  // u는 unsigned int를 의미하므로 자동형변환없이 대입 가능

 

 

 

 

< 2진법을 16진법으로 빠르게 바꾸기 >

1 1 0 1 1 0 1 1 0 0 0 0 1 0 1 (2)

① 오른쪽부터 숫자를 4개씩 나누기 → 0 1 1 0 / 1 1 0 1 / 1 0 0 0 / 0 1 0 1 (2)

② 4개씩 나눈 2진수를 10진수로 계산하기

  0 1 1 0 = 0 * 2^0 + 1 * 2^1 + 1 * 2^2 + 0 * 2^3 = 0 + 2 + 4 + 0 = 6

  1 1 0 1 = 1 * 1 + 1 * 4 + 1 * 8 = 13

  1 0 0 0 = 1 * 8 = 8

  0 1 0 1 = 1 * 1 + 1 * 4 = 5

③ 각 자리의 10진수를 16진법으로 표현하기 → 6  D(=13)  8  5

④ 16진법의 접미사를 붙이기 → 0X6D85 (16)

+ 8진법은 숫자를 3개씩 나누기

 

 

< 16진법을 2진법으로 빠르게 바꾸기 >

F 3 . 0 a (16)

① 각 숫자를 10진법으로 표현하기 → 15  3 . 0  10

② 각 숫자를 4자리의 2진법으로 표현하기

  15 = 1 1 1 1 (2)

  3 = 0 0 1 1 (2)

  0 = 0 0 0 0 (2)

  1 = 1 0 1 0 (2)

③ 각 2진수를 하나로 합치기 → 1 1 1 1 0 0 1 1 . 0 0 0 0 1 0 1 0 (2)

+ 8진법은 각 숫자를 3자리의 2진법으로 표현하기

관련글 더보기

댓글 영역