لماذا أجهزة الكمبيوتر العد من الصفر؟
يعد العد من الصفر ممارسة شائعة جدًا في العديد من لغات الكمبيوتر ، ولكن لماذا؟ اقرأ بينما نستكشف الظاهرة وسبب انتشارها.
تأتي جلسة الأسئلة والأجوبة اليوم مقدمة من SuperUser-a subdivision of Stack Exchange ، وهي مجموعة مجتمعية مدفوعة من مواقع Q & A.
السؤال
قارئ SuperUser DragonLord لديه فضول حول سبب حساب معظم أنظمة التشغيل ولغات البرمجة من الصفر. هو يكتب:
أجهزة الكمبيوتر التقليدية ترقيم القيم العددية تبدأ من الصفر. على سبيل المثال ، تبدأ المصفوفات في لغات البرمجة التي تستند إلى C من الصفر.
ما هي الأسباب التاريخية لهذا ، وما هي المزايا العملية للعد من الصفر على العد من واحد?
لماذا الواقع؟ وعلى نطاق واسع مثل الممارسة ، هناك بالتأكيد أسباب عملية لتنفيذها.
الاجابة
مساهم SuperUser يقدم Matteo الأفكار التالية:
يعمل فرز الصفائف من 0 على تبسيط حساب عنوان الذاكرة لكل عنصر.
إذا تم تخزين مصفوفة في موضع معين في الذاكرة (يطلق عليه العنوان) ، يمكن حساب موضع كل عنصر باسم
element (n) = address + n * size_of_the_element
إذا كنت تعتبر العنصر الأول هو الأول ، فسيصبح الحساب
element (n) = address + (n-1) * size_of_the_element
لا فرق كبير لكنه يضيف الطرح لا لزوم لها لكل وصول.
تم التعديل للإضافة:
- استخدام مؤشر الصفيف كإزاحة ليس مطلبًا وإنما مجرد عادة. يمكن إخفاء تخالف العنصر الأول من قبل النظام وأخذه في الاعتبار عند تخصيص العنصر والإشارة إليه.
- نشر دجكسترا بحثًا بعنوان "لماذا يجب أن يبدأ الترقيم عند الصفر" (pdf) حيث يشرح لماذا يعد البدء بـ 0 اختيارًا أفضل. وابتداء من الصفر يسمح بتمثيل أفضل للنطاقات.
إذا كنت تتطلع إلى التعمق في الإجابة ، فإن ورقة Dijkstra هي قراءة مفيدة.
هل لديك شيء تضيفه إلى الشرح؟ الصوت قبالة في التعليقات. هل ترغب في قراءة المزيد من الإجابات من مستخدمي Stack Exchange الآخرين المحترفين بالتكنولوجيا؟ تحقق من موضوع المناقشة الكامل هنا.