Αρχική σελίδα » πως να » Γιατί οι υπολογιστές υπολογίζονται από μηδέν;

    Γιατί οι υπολογιστές υπολογίζονται από μηδέν;


    Η μέτρηση από το μηδέν είναι μια πολύ κοινή πρακτική σε πολλές γλώσσες υπολογιστών, αλλά γιατί; Διαβάστε παρακάτω καθώς εξερευνούμε το φαινόμενο και γιατί είναι τόσο διαδεδομένο.

    Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.

    Το ερώτημα

    Ο αναγνώστης SuperUser DragonLord είναι περίεργος για το λόγο ότι τα περισσότερα λειτουργικά συστήματα και γλώσσες προγραμματισμού υπολογίζονται από το μηδέν. Αυτός γράφει:

    Οι υπολογιστές πληρούν παραδοσιακά αριθμητικές τιμές που αρχίζουν από το μηδέν. Για παράδειγμα, οι συστοιχίες σε γλώσσες προγραμματισμού που βασίζονται σε C ξεκινούν από μηδενικό δείκτη.

    Ποιοι είναι οι ιστορικοί λόγοι γι 'αυτό, και ποια πρακτικά πλεονεκτήματα μετράνε από το μηδέν πάνω από την καταμέτρηση από το ένα?

    Γιατί πράγματι; Όπως είναι ευρέως διαδεδομένη ως πρακτική, υπάρχουν ασφαλώς πρακτικοί λόγοι για την εφαρμογή της.

    Η απάντηση

    Ο συνεργάτης του SuperUser Matteo προσφέρει τις ακόλουθες πληροφορίες:

    Η καταμέτρηση των συστοιχιών από το 0 απλοποιεί τον υπολογισμό της διεύθυνσης μνήμης κάθε στοιχείου.

    Αν ένας πίνακας αποθηκευτεί σε μια δεδομένη θέση στη μνήμη (ονομάζεται διεύθυνση), η θέση κάθε στοιχείου μπορεί να υπολογιστεί ως

    στοιχείο (n) = διεύθυνση + n * size_of_element 

    Αν θεωρείτε το πρώτο στοιχείο το πρώτο, ο υπολογισμός γίνεται

    στοιχείο (n) = διεύθυνση + (n-1) * size_of_element 

    Δεν είναι τεράστια διαφορά, αλλά προσθέτει μια περιττή αφαίρεση για κάθε πρόσβαση.

    Επεξεργασμένο για προσθήκη:

    • Η χρήση του δείκτη συστοιχίας ως αντιστάθμισης δεν αποτελεί απαίτηση, αλλά απλώς συνήθεια. Η μετατόπιση του πρώτου στοιχείου θα μπορούσε να κρυφτεί από το σύστημα και να ληφθεί υπόψη κατά την κατανομή και την παραπομπή του στοιχείου.
    • Η Dijkstra δημοσίευσε ένα έγγραφο "Γιατί η αρίθμηση πρέπει να ξεκινά από το μηδέν" (pdf) όπου εξηγεί γιατί η αρχή με το 0 είναι μια καλύτερη επιλογή. Αρχίζοντας από το μηδέν επιτρέπει μια καλύτερη αναπαράσταση των περιοχών.

    Αν ψάχνετε να εμβαθύνετε στην απάντηση, το χαρτί Dijkstra είναι μια ενημερωτική ανάγνωση.


    Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.