Programming/OS
32bit, 64bit os의 차이
퀴노아
2020. 3. 16. 21:12
- 한번에 전송 및 처리하는 데이터의 크기가 32bit(4byte)이면 32bit 시스템, 64bit(8byte)이면 64bit 시스템이라고 칭한다. 이 한 단위가 pointer의 크기이다.
- pointer는 메모리의 주소를 나타내는 역할을 하는데 32bit OS에서 pointer의 크기는 32bit(4byte). 즉 하나의 포인터가 가리킬 수 있는 주소의 범위는(0
2^32)이다. 2^32은 대략 4gb정도의 크기이므로 32bit OS가 사용할 수 있는 메모리 크기는 4G정도가 최대 라는 것이다. 64bit OS에서 pointer의 크기는 64bit(8byte). 하나의 포인터가 가리킬 수 있는 메모리 주소의 범위는 (02^64)이다. 매우 크다. 그래서 메모리 제한없이(제한이 있기는 있지) 사용할 수 있다 라고 하는 것이다.
- 중요한건 포인터 크기의 차이가 난다는 것. 포인터의 크기 = long의 크기 = size_t 의 크기.
자료형 |
32bit OS |
64bit OS |
char |
8bit(1byte) |
8bit(1byte) |
short |
16bit(2byte) |
16bit(2byte) |
int |
32bit(4byte) |
32bit(4byte) |
long |
32bit(4byte) |
64bit(8byte) |
pointer |
32bit(4byte) |
64bit(8byte) |
longlong |
64bit |
64bit |
long double |
12byte |
16byte |
size_t, ssize_t |
32bit |
64bit |