WSP08

LJM·2023년 7월 14일
0

컴퓨터지식

목록 보기
9/41

WIN32 VS WIN64

CPU는 I/O 버스를 통해서 데이터를 전송, 수신한다. 한번에 전송,수신 데이터의 크기에 따라 32비트 64비트 시스템이 나뉜다.
데이터처리 크기로로 32, 64비트를 나뉜다

프로그래머 입장에서 64비트 컴퓨터
주소값이 넓으면 넓을 수록 좋다.

램에 주소가 정해져 있나?
램에 주소가 붙어있는것은 아니다 운영체제가 프로그램 실행을 위해 편의상 붙여놓은 가상의 주소이다

많은 비트수를 활용해서 주소를 표현할수록 표현할 수 있는 주소의 범위는 더 넓어진다

주소의 범위가 넓어지면 활용가능한 메모리 크기도 커진다.

프로그램 구현 관점에서 WIN32 vs WIN64
Windows 에서는 LLP64라는 데이터 표현 모델을 따르는데, 이 모델은 int 와 long은 그대로 4바이트로 표현하고, 포인터만 8바이트로 표현하는 방식이다. 32비트 시스템과의 호환성을 중시한 모델이다.

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

int arr[10] = {0,};
int arrVal = (int)arr;//데이터 손실 발생할 수 있는 위치

64비트 시스템에서는 포인터를 int, long 등 4바이트 정수형 데이터로 형 변환해서는 안된다
주소값인 포인터는 8바이트로 표현된다. 형변환 과정에서 데이터 손실 발생할 수 있다

64비트 시스템은 16테라 바이트의 메모리 공간 활용 가능

profile
게임개발자 백엔드개발자

0개의 댓글