Tôi chưa quen với lập trình, sự khác biệt giữa hệ thống 32 bit và 64 bit, tôi nên biết gì khi viết chương trình C ++?


Câu trả lời 1:

Chính xác những gì cấu thành một hệ thống N-bit không phải lúc nào cũng được thỏa thuận. Cá nhân, tôi nghĩ về nó như là một hệ thống máy tính có các thanh ghi mục đích chung CPU có N bit rộng.

Ví dụ, máy tính thứ hai của tôi có CPU Motorola 68008: Nó có các thanh ghi 32 bit, nhưng chỉ hoạt động bên trong trên 16 bit (một nửa thanh ghi) tại một thời điểm và giao tiếp bên ngoài với bộ nhớ chỉ 8 bit mỗi lần. Vì vậy, mặc dù nó là một phần của họ CPU 32 bit, đôi khi nó được gọi là CPU 8/16/32 bit. Theo định nghĩa của tôi, nó là CPU 32 bit.

Tương tự, Intel i486 có các thanh ghi đa năng 32 bit nhưng nó cũng có các thanh ghi dấu phẩy động 80 bit: Mặc dù vậy, không ai coi nó là máy tính 80 bit.

Khi bạn viết C ++, bạn thường được bảo vệ khỏi tất cả các số bit này, nhưng chúng được phản ánh trong kích thước, căn chỉnh và phạm vi của một số loại cơ bản. Ví dụ: thông thường int sẽ là loại số nguyên 32 bit và dài khá nhiều luôn là loại số nguyên 64 bit. Tuy nhiên, lâu dài có thể là một, tùy thuộc vào nền tảng. Ngoài ra, thông thường, con trỏ sẽ dài 4 byte trên nền tảng 32 bit và dài 8 byte trên nền tảng 64 bit (và đó thường là lợi thế chính của hệ thống 64 bit so với hệ thống 32 bit: chúng có thể giải quyết nhiều bộ nhớ hơn vì con trỏ rộng hơn).