2.2.3. Ο τύπος του ακεραίου

Ο τύπος του ακεραίου

 

Διαφήμιση

 

Ο τύπος του ακεραίου (int από τη λέξη integer) χρησιμοποιείται για να παραστήσει ακέραιους αριθμούς. Η περιοχή τιμών εξαρτάται από την αρχιτεκτονική του μηχανήματος. Για έναν υπολογιστή που διαθέτει 2 bytes (16 bits) για κάθε ακέραιο, το σύνολο των δυνατών τιμών είναι 216 = 65536 . Εάν θεωρηθεί ότι τις μισές τιμές θα καταλάβουν αρνητικοί ακέραιοι και τις υπόλοιπες μισές θετικοί, η περιοχή τιμών του τύπου int είναι από -32768 έως +32767, με την ακόλουθη αντιστοιχία δυαδικής και δεκαδικής τιμής:

 

(0000000000000000)2 → (−32768)10

(0111111111111111)2 → (−1)10

(1000000000000000)2 → (0)10

(1111111111111111)2 → (+32767)10

Η δήλωση της μεταβλητής ακεραίου ακολουθεί τον εξής φορμαλισμό:

 

 

int όνομα_μεταβλητής; π.χ. int num;

 

Υπάρχει η δυνατότητα ταυτόχρονα με τη δήλωση να αποδοθεί αρχική τιμή στη μεταβλητή:

 

Διαφήμιση

 

int num=46;

 

Εάν πριν από τη λέξη int τοποθετηθεί ο προσδιοριστής long τότε οι ακέραιοι long int εξασφαλίζουν αποθηκευτικό χώρο 32 bits. Αντίστοιχα, ο προσδιοριστής unsigned χρησιμοποιείται πριν από τη λέξη int για να χαρακτηρίσει τη μεταβλητή χωρίς πρόσημο, η οποία λαμβάνει τιμές από 0 έως 65535 για ακέραιο 16 bits.

Σε περιβάλλοντα 4 bytes (32 bits) όπως τα Windows XP, το σύνολο των δυνατών τιμών είναι 232=4.294.967.296 . Έτσι οι προσημασμένοι ακέραιοι αποθηκεύουν τιμές στο διάστημα από -2.147.483.648 έως +2.147.483.647. Ένας ακέραιος short int είναι τουλάχιστον 16 bits και ο int είναι τουλάχιστον τόσο μεγάλος όσο ο short int (συνήθως είναι 32 bits).

Η εισαγωγή τιμών στις ακέραιες μεταβλητές γίνεται με χρήση της συνάρτησης scanf και του προσδιοριστή %d. Η πρόταση

 

scanf( "%d", &num );

 

διαβάζει από το πληκτρολόγιο έναν ακέραιο και τον αποδίδει στη μεταβλητή num.

 

Διαφήμιση

 

Η εκτύπωση ακέραιων μεταβλητών γίνεται με χρήση της συνάρτησης printf και των προσδιοριστών %d, %o, %x για την εμφάνιση σε δεκαδική, οκταδική και δεκαεξαδική μορφή, αντίστοιχα. Οι προσδιοριστές l (long), h (short), και u (unsigned) τοποθετούνται πριν από τους d, o, x. H πρόταση

 

 

printf( "dec=%d, octal=%o, hex=%x", num,num,num );

 

θα τυπώσει (θεωρώντας ότι η num λαμβάνει την τιμή 46):

 

 

dec=46, octal=56, hex=2e

 

Διαφήμιση

 

Παρατηρήσεις:

Υπάρχει η δυνατότητα να καθορισθεί ο αριθμός των ψηφίων που θα τυπωθούν, τοποθετώντας τον επιθυμητό αριθμό ανάμεσα στο % και το d. Εάν ο αριθμός είναι μικρότερος από τον απαιτούμενο αριθμό ψηφίων του ακέραιου, η επιλογή δε θα ληφθεί υπόψη. Στην αντίθετη περίπτωση, στις πλεονάζουσες θέσεις θα τοποθετηθούν κενά. Για το λόγο αυτό, ο αριθμός που τοποθετείται στον προσδιοριστή %d ονομάζεται καθοριστικό ελάχιστου πλάτους πεδίου. Με αυτόν τον τρόπο, σε διαδοχικές printf θα υπάρξει ευθυγράμμιση των αποτελεσμάτων κατά στήλες. Οι προτάσεις

 

 

printf( "dec=%1d, octal=%4o, hex=%4x", num,num,num ); 
printf( "dec=%4d, octal=%4o, hex=%4", num,num,num );

 

θα τυπώσουν αντίστοιχα

 

 

dec=46, octal= 56, hex= 2e 
dec= 46, octal= 56, hex= 2e

 

Όταν γράφεται ένας αριθμός στον πηγαίο κώδικα χωρίς δεκαδικό ή εκθετικό μέρος, ο μεταγλωττιστής το χειρίζεται ως ακέραια σταθερά. Η σταθερά 245 αποθηκεύεται ως int, ενώ η σταθερά 100000 αποθηκεύεται ως long int. Εάν ορισθεί η σταθερά 8965 ως 8965L, ο μεταγλωττιστής αναγκάζεται να δεσμεύσει χώρο για long int.

 

Διαφήμιση
SEE ALL Add a note
YOU
Add your Comment
 
error: Το περιεχόμενο προστατεύεται!!
X