Οι ακέραιες σταθερές είναι αριθμοί που χρησιμοποιούνται άμεσα σε ένα πρόγραμμα, όπως για παράδειγμα οι αριθμοί 123. Εξ ορισμού, αυτοί οι αριθμοί αντιμετωπίζονται ως ακέραιοι. Όμως μπορείτε να αλλάξετε αυτό με την χρήση των τροποποιητών U και L.
Κανονικά, οι ακέραιες σταθερές αντιμετωπίζονται ως δεκαδικοί ακέραιοι που έχουν βάση το 10. Αλλά μπορούν να χρησιμοποιηθούν ειδικοί συμβολισμοί για την εισαγωγή αριθμών και σε άλλες βάσεις.
Base Example Formatter Comment
10 (decimal) 123 none
2 (binary) B1111011 leading 'B' only works with 8 bit values (0 to 255)
characters 0-1 valid
8 (octal) 0173 leading "0" characters 0-7 valid
16 (hexadecimal) 0x7B leading "0x" characters 0-9, A-F, a-f valid
Η βάση του δεκαδικού συστήματος είναι το 10. Αυτή είναι η κοινή μαθηματική λογική με την οποία είστε εξοικειωμένοι. Έτσι οι σταθερές που είναι γραμμένες χωρίς άλλα προθέματα, υποτίθεται ότι είναι σε δεκαδική μορφή.
Παράδειγμα
101 // same as 101 decimal ((1 * 10^2) + (0 * 10^1) + 1)
Το δυαδικό σύστημα έχει ως βάση το 2. Οι μόνοι έγκυροι αριθμοί είναι το 0 και το 1.
Παράδειγμα
B101 // same as 5 decimal ((1 * 2^2) + (0 * 2^1) + 1)
Ο δυαδικός μορφοποιητής λειτουργεί μόνο πάνω σε bytes μεταξύ 0 (Β0) και 255 (Β11111111). Εάν είναι βολικό για σας να εισάγετε έναν ακέραιο στην δυαδική του μορφή, τότε μπορείτε να το κάνετε ως εξής:
myInt = (B11001100 * 256) + B10101010; // B11001100 is the high byte
Η βάση του οκταδικού συστήματος είναι το 8. Οι αριθμοί που χρησιμοποιούνται σε αυτό το σύστημα είναι από το 0 έως το 7. Οι οκταδικές τιμές επισημαίνονται από το πρόθεμα “0”.
Παράδειγμα
0101 // same as 65 decimal ((1 * 8^2) + (0 * 8^1) + 1)
Προσοχή
Είναι πιθανόν να δημιουργηθεί κατά λάθος ένα εξαιρετικά σπάνιο σφάλμα προγράμματος, το οποίο θα συμπεριλαμβάνει το αρχικό μηδέν πριν από μια σταθερά και ο μεταγλωττιστής θα ερμηνεύσει ακούσια την σταθερά σας ως οκταδικό νούμερο.
Το δεκαεξαδικό σύστημα έχει ως βάση το 16. Το σύστημα αυτό χρησιμοποιεί τους αριθμούς από το 0 έως το 9, καθώς και τα γράμματα από το A μέχρι το F. Έτσι το A είναι το 10, το B είναι το 11 και φτάνουμε στο F το οποίο είναι το 15. Οι τιμές του δεκαεξαδικού συστήματος υποδεικνύονται με το πρόθεμα “0x”. Σημειώστε ότι οι χαρακτήρες A-F μπορεί να είναι είτε με κεφαλαία είτε με μικρά γράμματα.
Παράδειγμα
0x101 // same as 257 decimal ((1 * 16^2) + (0 * 16^1) + 1)
Τροποποιητές (formatters) U & L
Εξ ορισμού, μια ακέραια σταθερά αντιμετωπίζεται ως ένας ακέραιος με τους συναφής περιορισμούς στις τιμές του. Για να καθορίσετε μια ακέραια σταθερά με έναν άλλο τύπο δεδομένων, θα πρέπει να το προσδιορίσετε με έναν δείκτη στο τέλος της σταθεράς:
» με ένα ‘u’ ή ‘U’ για να εξαναγκάζετε την σταθερά σε μια μορφή ανυπόγραφων δεδομένων. Παράδειγμα: 33u
» με ένα ‘l’ ή ‘L’ για να εξαναγκάζετε την σταθερά σε μια μορφή δεδομένων τύπου long. Παράδειγμα: 100000L
» με ένα ‘ul’ ή ‘UL’ για να εξαναγκάζετε την σταθερά σε μια μορφή ανυπόγραφων δεδομένων τύπου long. Παράδειγμα: 32767ul
Επιστροφή στην σελίδα Παραπομπές Γλώσσας
