Mən proqramlaşdırma ilə yeni tanışam. 32 bitli və 64 bitlik sistemlər arasındakı fərq nədir? C ++ proqramı yazarkən nəyi nəzərə almalıyam?


cavab 1:

N-bit sistemini tam olaraq təmsil edən şey həmişə razılaşdırılmır. Mən şəxsən universal CPU qeydləri N bit geniş olan bir kompüter sistemini təsəvvür edirəm.

Məsələn, mənim ikinci kompüterimdə Motorola 68008 CPU var: 32 bitlik qeydləri var, ancaq 16 bit (yarım reyestr) ilə daxili işləyirdi və yalnız bir anda 8 bit ilə yaddaş ilə xarici əlaqə qururdu. 32 bitlik bir CPU ailəsinin bir hissəsi olsa da, bəzən 8/16/32 bit CPU olaraq adlandırıldı. Tərifimə görə 32 bitlik bir CPUdur.

Intel i486, 32 bitlik universal qeydlərə malikdir, eyni zamanda 80 bitlik üzən nöqtə registrlərinə malikdir: lakin heç kim onu ​​80 bitlik bir kompüter kimi qəbul etmir.

C ++ yazarkən ümumiyyətlə bu bit sayğacların hamısından qorunursunuz, lakin bunlar bəzi əsas növlərin ölçüsü, istiqaməti və diapazonunda əks olunur. Məsələn, int ümumiyyətlə 32 bitlik tam bir tipdir və uzun uzunluq demək olar ki, həmişə 64 bitlik tam bir tipdir. Platformadan asılı olaraq uzun ola bilər. Bundan əlavə, göstəricilər adətən 32 bitli platformalarda 4 bayt uzunluğunda və 64 bitli platformalarda 8 bayt uzunluğunda olur (və bu çox vaxt 64 bit sistemlərin 32 bit sistemlərdən üstün üstünlüyüdür: bunlar aşağıdakı amillərə görə ola bilər). daha çox RAM ünvanı daha geniş göstəricilər).