프로그래밍/시스템

1-3. 운영체제 32bit vs 64bit

melopa 2015. 12. 20. 20:37

 

 

+운영체제 32bit 64bit 인지 구분짓는 기준


CPU가 한 번에 송.수신 할 수 있는 데이터 크기와 한 번에 처리할 수 있는 데이트 크기

 

 

 

 

한 번에 송.수신 할 수 있는 데이터 크기가 32bit 이다

-> 메모리 주소값이 32bit 로 표현된다

-> 활용할 수 있는 RAM 크기는 4GB 이다

 

한 번에 송.수신 할 수 있는 데이터 크기가 64bit 이다

-> 메모리 주소값이 64bit 로 표현된다

-> 활용할 수 있는 RAM 크기는 2의 64승 Byte

 

 

 

+64 비트와 32 비트 공존의 문제점

-포인터 크기와 자료형 크기가 다르다

32 bit : int 형 4바이트, 포인터 형 4바이트

64 bit : int 형 4바이트, 포인터 형 8바이트

 

64비트 환경에서 아래와 같은 소스를 실행하면 데이터 손실이 발생한다

int arr[10] = {0,};

       int arrAddress = (int)arr;

why? arr 의 주소값은 8바이트, arrAddress 는 int형이므로 4바이트

 

result! 64비트 시스템에서는 포인터가 지니고 있는 주소값을 4바이트 정수형으로 캐스팅하지 않는다