나는 프로그래밍에 익숙하지 않다. 32 비트와 64 비트 시스템의 차이점은 무엇입니까? C ++ 프로그램을 작성할 때 알아야 할 것은 무엇입니까?


대답 1:

N 비트 시스템을 정확하게 구성하는 것이 항상 합의되는 것은 아닙니다. 개인적으로 저는 CPU 범용 레지스터의 너비가 N 비트 인 컴퓨터 시스템이라고 생각합니다.

예를 들어, 두 번째 컴퓨터에는 Motorola 68008 CPU가있었습니다. 32 비트 레지스터를 가지고 있었지만 한 번에 16 비트 (레지스터 반) 만 내부적으로 작동했으며 한 번에 8 비트 만 외부와 통신했습니다. 따라서 32 비트 CPU 제품군의 일부이지만 8/16/32 비트 CPU라고도합니다. 내 정의에 따르면 32 비트 CPU입니다.

마찬가지로, Intel i486에는 32 비트 범용 레지스터가 있지만 80 비트 부동 소수점 레지스터도 있습니다. 아무도이를 80 비트 컴퓨터로 간주하지 않습니다.

C ++를 작성할 때 일반적으로 이러한 모든 비트 수에서 보호되지만 일부 기본 유형의 크기, 정렬 및 범위에 반영됩니다. 예를 들어, 보통 int는 32 비트 정수형이고 long long은 거의 항상 64 비트 정수형입니다. 그러나 플랫폼에 따라 long이 하나가 될 수 있습니다. 또한 일반적으로 포인터는 32 비트 플랫폼에서 4 바이트 길이이고 64 비트 플랫폼에서 8 바이트 길이입니다 (32 비트 시스템에 비해 64 비트 시스템의 주요 장점 인 경우가 많음). 더 넓은 포인터).