أنا جديد على البرمجة ، ما هو الفرق بين نظام 32 بت و 64 بت ، ماذا يجب أن أعرف عند كتابة برنامج C ++؟


الاجابه 1:

ما يشكل بالضبط نظام N-bit لا يتم الاتفاق عليه دائمًا. أنا شخصياً أفكر في ذلك كنظام كمبيوتر له سجلات للأغراض العامة لوحدات المعالجة المركزية بعرض N.

على سبيل المثال ، كان جهاز الكمبيوتر الثاني الخاص بي يحتوي على وحدة المعالجة المركزية موتورولا 68008: كان يحتوي على سجلات 32 بت ، لكنه يعمل داخليًا فقط على 16 بت (نصف سجل) في المرة الواحدة ، ويتواصل خارجياً مع الذاكرة 8 بت فقط في المرة الواحدة. لذلك ، على الرغم من أنها كانت جزءًا من عائلة وحدة المعالجة المركزية 32 بت ، إلا أنها كانت تسمى أحيانًا وحدة المعالجة المركزية 8/16/32-bit. مع التعريف الخاص بي ، هو وحدة المعالجة المركزية 32 بت.

وبالمثل ، يحتوي Intel i486 على سجلات للأغراض العامة 32 بت ، لكن لديه أيضًا سجلات الفاصلة العائمة 80 بت: لا أحد يعتبرها جهاز كمبيوتر 80 بت.

عندما تكتب C ++ ، فإنك محمية عمومًا من جميع هذه الأرقام ، لكن تنعكس في حجم بعض الأنواع الأساسية ومحاذاة نطاقها. على سبيل المثال ، عادةً ما يكون int نوعًا صحيحًا 32 بت وطويلًا ما يكون طويلًا نوعًا صحيحًا 64 بت. ومع ذلك ، يمكن أن تكون طويلة إما واحدة ، وهذا يتوقف على النظام الأساسي. أيضًا ، عادةً ما يكون طول المؤشرات 4 بايت على الأنظمة الأساسية 32 بت و 8 بايت على الأنظمة الأساسية 64 بت (وغالبًا ما تكون هذه الميزة الأساسية للأنظمة 64 بت على أنظمة 32 بت: يمكنها معالجة المزيد من الذاكرة بسبب مؤشرات أوسع).