Ο αριθμός των bits που χρησιμοποιούνται για να αντιπροσωπεύει έναν τύπο δεδομένων εξαρτάται από την αρχιτεκτονική του συνόλου εντολών (ISA)-κυρίως x86-64 στους σύγχρονους επεξεργαστές Intel-και τη συγκεκριμένη γλώσσα μεταγλωττιστή και προγραμματισμού. Δεν υπάρχει ενιαία οριστική απάντηση, καθώς μπορεί να ποικίλει ελαφρώς ανάλογα με τις βελτιστοποιήσεις του μεταγλωττιστή και τις λεπτομέρειες του λειτουργικού συστήματος.
Ακολουθεί μια γενική επισκόπηση των κοινών τύπων δεδομένων και τα τυπικά μεγέθη τους σε bits στις αρχιτεκτονικές X86-64 (όπως αυτές που χρησιμοποιούνται από τους περισσότερους επεξεργαστές της Intel Core):
* ακέραιοι:
* `char`:τυπικά 8 bits (υπογεγραμμένα ή μη υπογεγραμμένα)
* `short`:τυπικά 16 bits (υπογεγραμμένα ή μη υπογεγραμμένα)
* `int`:τυπικά 32 bits (υπογεγραμμένα ή μη υπογεγραμμένα)
* `long`:τυπικά 64 bits (υπογεγραμμένα ή μη υπογεγραμμένα)
* `long long`:τυπικά 64 bits (υπογεγραμμένα ή μη υπογεγραμμένα)
* Αριθμοί κυμαινόμενου σημείου:
* `float`:τυπικά 32 bits (μονή ακρίβεια)
* `Double`:Τυπικά 64 bits (διπλή ακρίβεια)
* `Long Double`:Συνήθως 80 bits (εκτεταμένη ακρίβεια, αν και τα στοιχεία εφαρμογής μπορεί να ποικίλουν, μερικές φορές μιμούνται ως 64 bits)
* δείκτες:
* Οι δείκτες είναι διευθύνσεις μνήμης. Σε μια αρχιτεκτονική 64-bit όπως το x86-64, έχουν συνήθως μήκους 64 bits.
* Booleans:
* Το μέγεθος ενός τύπου boolean εξαρτάται από τον μεταγλωττιστή, αλλά συχνά καταλαμβάνει 1 byte (8 bits) για αποτελεσματικότητα, παρόλο που μόνο 1 bit είναι λογικά απαραίτητο.
Σημαντικές εκτιμήσεις:
* Επιρροή του μεταγλωττιστή: Ο μεταγλωττιστής διαδραματίζει κρίσιμο ρόλο στον προσδιορισμό του μεγέθους και της αναπαράστασης των τύπων δεδομένων. Οι διαφορετικοί μεταγλωττιστές (όπως το GCC, το Clang, το MSVC) ενδέχεται να έχουν ελαφρώς διαφορετικές προεπιλογές ή βελτιστοποιήσεις, αν και τα πρότυπα (όπως τα πρότυπα C ++ και C) περιορίζουν τις δυνατότητες.
* Λειτουργικό σύστημα: Το λειτουργικό σύστημα παίζει επίσης ένα μικρό ρόλο, καθώς μπορεί να επηρεάσει τα πράγματα όπως η ευθυγράμμιση της μνήμης.
* Οδηγίες SIMD: Οι επεξεργαστές Intel υποστηρίζουν τις οδηγίες SIMD (μονής εντολής, πολλαπλά δεδομένα) που λειτουργούν σε φορείς δεδομένων. Αυτά μπορούν να λειτουργήσουν ταυτόχρονα σε πολλαπλά στοιχεία δεδομένων, επιταχύνοντας σημαντικά την επεξεργασία των συστοιχιών και παρόμοιες δομές δεδομένων. Τα μεγέθη αυτών των τύπων φορέα ορίζονται από τις συγκεκριμένες οδηγίες SIMD που χρησιμοποιούνται (π.χ. SSE, AVX, AVX-512). Αυτοί δεν είναι άμεσα οι τύποι δεδομένων που προβάλλονται από το χρήστη με τον ίδιο τρόπο όπως είναι το `int` ή το` float '.
Συνοπτικά:Ενώ ο επεξεργαστής Intel χειρίζεται θεμελιωδώς bits, η αναπαράσταση των τύπων δεδομένων σε bits υπαγορεύεται από έναν συνδυασμό της αρχιτεκτονικής (x86-64), τη γλώσσα προγραμματισμού, τον μεταγλωττιστή και μερικές φορές ακόμη και το λειτουργικό σύστημα. Ο παραπάνω πίνακας παρέχει μια γενική κατευθυντήρια γραμμή, αλλά συμβουλευτείτε την τεκμηρίωση του συγκεκριμένου μεταγλωττιστή σας για ακριβείς λεπτομέρειες.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα