Είμαι νέος στον προγραμματισμό, ποια είναι η διαφορά μεταξύ συστήματος 32-bit και 64-bit, τι πρέπει να γνωρίζω κατά τη σύνταξη ενός προγράμματος C ++;


Απάντηση 1:

Αυτό που ακριβώς συνιστά ένα σύστημα N-bit δεν συμφωνείται πάντοτε. Προσωπικά, το σκέφτομαι ως ένα σύστημα ηλεκτρονικών υπολογιστών του οποίου οι καταχωρητές γενικής χρήσης CPU είναι ευρείς N bits.

Για παράδειγμα, ο δεύτερος μου υπολογιστής είχε έναν επεξεργαστή Motorola 68008: Είχε καταχωρητές 32 bit, αλλά εσωτερικά λειτουργούσε μόνο σε 16 bits (μισό μητρώο) κάθε φορά και μοιράστηκε εξωτερικά μνήμη μόλις 8 bits κάθε φορά. Έτσι, παρόλο που ήταν μέρος μιας οικογένειας CPU 32 bit, ονομάστηκε μερικές φορές CPU 8/16/32 bit. Με τον ορισμό μου, είναι μια 32-bit CPU.

Ομοίως, η Intel i486 έχει καταχωρητές γενικής χρήσης 32 bit αλλά επίσης διαθέτει μητρώα επιπλέων σημείων 80 bit: κανείς όμως δεν θεωρεί έναν υπολογιστή 80-bit.

Όταν γράφετε C ++, είστε γενικά θωρακισμένοι από όλες αυτές τις μετρήσεις δυαδικών ψηφίων, αλλά αντικατοπτρίζονται στο μέγεθος, την ευθυγράμμιση και το εύρος ορισμένων από τους βασικούς τύπους. Π.χ., συνήθως ο int θα είναι ένας ακέραιος τύπος 32-bit και ο μακρύς μήνας είναι σχεδόν πάντα ένας ακέραιος τύπος 64-bit. Ωστόσο, πολύ θα μπορούσε να είναι είτε μία, ανάλογα με την πλατφόρμα. Επίσης, τυπικά, οι δείκτες θα έχουν μήκος 4 bytes σε πλατφόρμες 32 bit και 8 byte σε πλατφόρμες 64 bit (και αυτό είναι συχνά το κύριο πλεονέκτημα των συστημάτων 64-bit σε συστήματα 32 bit: μπορούν να αντιμετωπίσουν περισσότερη μνήμη λόγω της ευρύτερους δείκτες).