정수(integers)
* 음의 정수(..., -3, -2, -1), 0, 양의정수(1,2,3, ...)
* 2, -15, 3697 등등
* 사람들은 10진수로 사용하지만 컴퓨터는 내부적으로 2진수 사용
* 8비트(32비트) 부호 없는(Unsigned) 정수 / 8비트(32비트) 부호 있는(signed) 정수
int형이 32비트 signed 정수
부호가 있는 정수는 앞에 한 칸을 부호 표시로 사용.
맨 앞칸에 0이 들어가면 양수, 1이 들어가면 음수.
음수를 표현 할 때 2의 보수 표현법을 사용.
부호 있는 정수와 부호 없는 정수의 범위가 다르다. (부호 표현을 위해 맨 앞 비트를 사용하기 때문이다)
실수(Real numbers)
* 정수들 사이의 값들 : 2.0, 3.16, 2.74, 0.123 등등
* 내부적으로 '부동 소수점(floating point)' 표현법 사용
+_부호(Sign) / 지수(Exponent) / 분수(Fraction)
+ / -1 / 0.3141592 → 0.3141592 * 10의-1승 = 0.03141592
* Exponent (지수)
3.14 = 3.14E0(3.14 * 10의0제곱) = 3.14e0(대문자 E와 소문자 e의 뜻이 같다) = 0.314E1(0.314 * 10의1승) = 31.4.E-1(31.4 * 10의-1제곱)
* 내부적으로 2진수 사용
* 32bit Single Precision
float a = 1.234f;
* 64bit Double Precision
double pi = 3.141592;
일반적으로 복잡한 숫자일수록 속도가 느리다. 정수형보다 float가 느리고 double은 더 느리다. 최근에는 하드웨어의 발전으로 범위가 크고 복잡한 자료형도 빠르게 사용 할 수 있지만 고급 프로그래머는 만들고 싶은 프로그램에 적합한 자료형을 사용 할 수 있어야 한다.
'프로그래밍언어 > C언어' 카테고리의 다른 글
[C language] 다양한 정수형들 (0) | 2020.12.09 |
---|---|
[C language] 정수(integers)의 오버플로우(Overflow) (0) | 2020.12.09 |
[C language] 간단한 입출력 프로그램 만들기 (0) | 2020.12.02 |
[C language] scanf() 함수의 기본적인 사용법 (0) | 2020.12.01 |
[C language] 변수와 상수 (0) | 2020.11.22 |