일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 기계학습
- autoencoder
- Machine Learning
- 논문리뷰
- 인공신경망
- Generative Model
- 레이텍
- Wavelet Transform
- Bagging
- 뉴럴네트워크
- MLE
- anomalydetection
- 논문 해석
- 이상 현상 탐지
- ae
- rnn
- Fast Fourer Transform
- Deep Neural Network
- Spiking Neural Network
- 딥러닝
- Snn
- 이상 탐지
- MNIST
- 논문 리뷰
- map
- Python
- 머신러닝
- Deep Learning
- 머신러닝 논문리뷰
- ML
- Today
- Total
MATH & ML
c언어 자료형 (Data Type) 본문
자료형은 크게 정수형/부호없는 정수형/실수형 3종류로 나뉜다.
정수형은 char, short, int, long long int 등이 있다.
부호없는 정수형으로는 그 앞에 unsigned를 붙인 형태들이 가능하다.
실수형에는 double, float 등이 있다.
각각에 따라 메모리를 얼마나 어떻게 쓰는지 알아두는것은 나중에 큰 데이터에 대하여 효율적으로 데이터를 사용하기위해 꼭 필요하다.
(반면 파이썬은 자료형을 굳이 구체적으로 지정해주지 않아도 자동으로 잘 만들어지기 때문에 이런 방식보다는 어떻게 잘 쓸 지 파악하는것이 중요하다)
1. 정수형
char=1byte, short=2byte, int(long)=4byte, long long=8byte 이다.
(1byte=8bit, bit는 2진수로 나타냈을때 각 자리수 하나하나를 의미)
예를 들어 char형의 5의 경우 00000101로 나타난다. 또한 -5의 경우 '2의보수법'이라는 방법으로 표현하는데
5를 2진수로 나타낸 00000101을 0을1로 1은0으로 반전시킨다음에 1을 더한 1111010+1=11111011 로 나타낼 수 있다.
신기하게도 보수법을 이용하면 맨 왼쪽비트의 숫자가 0이면 양수, 1이면 음수 로 생각할 수 있고, 이 왼쪽 비트는 부호를 나타내는 비트로 쓰인다고 볼 수 있다.
이렇게 보수화를 하여 표현하면 양수는 1~127까지 표현 가능하고, 0도 표현가능하며, 음수는
-1=11111111
-2=11111110
-3=11111101
...
-128=10000000
까지 -1~-128을 표현 가능하다.
즉 char형은 -128~127을 표현 가능하다.
int형은 16bit이므로 16자리 중 한자리는 부호비트로 나머지 15자리는 숫자를 나타내어 결국 -2147483648~2147483647까지 나타낼 수 있다.(2^31=2147483648) 대략 -21억~+21억 정도까지 대충 -10^9~10^9 정도까지 표현가능한것이다.
2. 부호없는 정수형
모든 정수형 앞에 unsigned를 붙이면 되는데 여기서는 음수를 나타낼 필요가 없으므로 맨 왼쪽비트도 숫자를 나타내는데에 쓰인다.
따라서 unsigned char형의 경우에는 0~255까지의 숫자 표현이 가능하다. 보수작업이 필요가 없는 것이다.
3. 실수형
실수형에서는 부동소수점방식을 이용한다.(생략)
이 후의 자세한 내용은
https://blog.naver.com/justkukaro/220650437109
블로거님이 아주아주 자세히 쉽게 써주셔서 참고하면 좋을 것 같다.
'C programming' 카테고리의 다른 글
break문과 continue문 (0) | 2018.02.19 |
---|---|
#include <stdio.h> 헤더파일이란 (0) | 2018.02.19 |
int main()과 void main()의 차이 (0) | 2018.02.19 |