반응형
C 언어는 다양한 데이터 타입을 제공하여 효율적이고 유연한 프로그래밍을 가능하게 합니다. 이번 포스팅에서는 C 언어의 주요 데이터 타입 중 정수형, 실수형, 문자형 데이터 타입의 개념, 메모리 크기, 값의 범위를 이진수를 활용하여 설명하겠습니다.
1. 정수형 데이터 타입
정수형 데이터 타입은 숫자를 정수로 저장하는 데 사용됩니다. 부호 있는 타입과 부호 없는 타입이 있으며, 각각의 범위는 비트(bit) 수에 따라 결정됩니다.
반응형
정수형 데이터 타입 표
타입 | 메모리 크기(byte) | 범위 | 설명 |
char | 1 | -128 ~ 127 또는 0 ~ 255 | 문자 저장, ASCII 사용 |
short | 2 | -32,768 ~ 32,767 | 작은 정수 저장 |
int | 4 | -2,147,483,648 ~ 2,147,483,647 | 기본 정수형 |
long | 4 또는 8 | 플랫폼에 따라 다름 | 큰 정수 저장 |
long long | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 매우 큰 정수 저장 |
이진수를 활용한 범위 설명
정수형 데이터의 값 범위는 비트의 수와 부호 유무에 따라 달라집니다.
- 부호 있는 정수 (signed): 최상위 비트(MSB)를 부호 비트로 사용하여 양수와 음수를 나타냅니다. 예를 들어, 8비트 char 타입의 경우:
- 00000000 (0)
- 01111111 (127)
- 10000000 (-128)
- 11111111 (-1)
- 부호 없는 정수 (unsigned): 모든 비트를 값 표현에 사용합니다. 예를 들어, 8비트 unsigned char 타입의 경우:
- 00000000 (0)
- 11111111 (255)
이러한 이진수 구조를 통해 데이터 범위를 효율적으로 계산할 수 있습니다.
2. 실수형 데이터 타입
실수형 데이터 타입은 소수점이 포함된 숫자를 저장하며, 부동소수점 형식으로 표현됩니다. 이는 숫자를 **가수(Mantissa)**와 **지수(Exponent)**로 나누어 저장합니다.
실수형 데이터 타입 표
타입 | 메모리 크기 (byte) | 값의 범위 | 소수점 자릿수 |
float | 4 | ~3.4E-38 ~ 3.4E+38 | 약 6자리 |
double | 8 | ~1.7E-308 ~ 1.7E+308 | 약 15자리 |
long double | 10, 12, 또는 16 | 플랫폼에 따라 다름 | 약 18~21자리 |
이진수를 활용한 범위 설명
부동소수점은 다음과 같은 형식으로 저장됩니다:
- 부호 비트: 숫자의 양수/음수를 나타냅니다.
- 지수 비트: 소수점의 위치를 나타냅니다.
- 가수 비트: 숫자의 실제 값을 저장합니다.
예를 들어, float는 32비트로 구성되며 다음과 같이 나뉩니다:
- 부호: 1비트
- 지수: 8비트 (값 범위는 -127 ~ 128)
- 가수: 23비트 (정밀도를 결정)
이 형식을 통해 매우 큰 수와 매우 작은 수를 효율적으로 표현할 수 있습니다.
3. 문자형 데이터 타입
문자형 데이터 타입은 단일 문자를 저장하며, ASCII 코드 값을 사용합니다. char 타입은 1바이트 크기의 정수형으로 간주될 수 있습니다.
문자형 데이터 타입 표
타입 | 메모리 크기 (byte) | 값의 범위 | 설명 |
char | 1 | -128 ~ 127 (signed) 또는 0 ~ 255 (unsigned) | 문자 저장 |
이진수를 활용한 범위 설명
char 타입은 내부적으로 정수값으로 저장되며, 각 문자에 해당하는 ASCII 코드 값으로 변환됩니다. 예를 들어:
- A의 ASCII 값은 65 (01000001)
- a의 ASCII 값은 97 (01100001)
- 0의 ASCII 값은 48 (00110000)
부호가 있는 경우에는 최상위 비트를 부호로 사용하여 음수 값도 표현할 수 있습니다.
반응형
'C 언어' 카테고리의 다른 글
C언어 매크로(Macro)의 모든 것 - #define, 개념, 동작원리, 성능, 장점, 다양한 예시, 주의사항 (0) | 2024.12.22 |
---|---|
비트연산 - 코딩테스트 시간단축을 위한 마법 (1) | 2024.12.22 |
C언어 비트연산 완벽 정리 - 장점, 원리, 사용 예시, 예제코드 (2) | 2024.12.22 |
C언어 char 타입과 ASCII 코드 완벽 이해 - 전체 아스키 코드 표, 대소문자 변환 (2) | 2024.12.21 |
타입 캐스팅을 활용해서 성능 개선하기 (0) | 2023.08.13 |
댓글